Core (.core)

Contents

Core (.core)#

Subpackages#

execute_tasks#

infinigen.core.execute_tasks.get_scene_tag(name)[source]#
Parameters:

name

infinigen.core.execute_tasks.render(...)[source]#
Parameters:
  • scene_seed

  • output_folder

  • camera

  • render_image_func -- (default: <function render_image>)

  • resample_idx -- (default: None)

  • hide_water -- (default: False)

infinigen.core.execute_tasks.is_static(obj)[source]#
Parameters:

obj

infinigen.core.execute_tasks.save_meshes(...)[source]#
Parameters:
  • scene_seed (int)

  • output_folder (Path)

  • cameras (list[Object])

  • frame_range

  • resample_idx -- (default: False)

  • point_trajectory_src_frame -- (default: 1)

infinigen.core.execute_tasks.validate_version(scene_version)[source]#
Parameters:

scene_version

infinigen.core.execute_tasks.group_collections(config)[source]#
Parameters:

config

infinigen.core.execute_tasks.execute_tasks(...)[source]#
Parameters:
  • compose_scene_func (Callable)

  • populate_scene_func (Callable)

  • input_folder (Path)

  • output_folder (Path)

  • task (str)

  • scene_seed (int)

  • frame_range (tuple[int])

  • camera_id (tuple[int])

  • resample_idx (int) -- (default: None)

  • output_blend_name (str) -- (default: 'scene.blend')

  • generate_resolution -- (default: (1280, 720))

  • fps (int) -- (default: 24)

  • reset_assets -- (default: True)

  • dryrun -- (default: False)

  • optimize_terrain_diskusage -- (default: False)

  • point_trajectory_src_frame -- (default: 1)

infinigen.core.execute_tasks.main(...)[source]#
Parameters:
  • input_folder

  • output_folder

  • scene_seed

  • task

  • task_uniqname

generator#

class infinigen.core.generator.Generator(distribution)[source]#

Bases: object

Parameters:

distribution (Callable)

generate(*args, **kwargs)[source]#

init#

infinigen.core.init.parse_args_blender(parser)[source]#
Parameters:

parser

infinigen.core.init.parse_seed(seed, task=None)[source]#
Parameters:
  • seed

  • task -- (default: None)

infinigen.core.init.apply_scene_seed(seed, task=None)[source]#
Parameters:
  • seed

  • task -- (default: None)

infinigen.core.init.sanitize_override(override)[source]#
Parameters:

override (list)

infinigen.core.init.contained_stems(filenames, folder)[source]#
Parameters:
infinigen.core.init.resolve_folder_maybe_relative(folder, root)[source]#
Parameters:
  • folder

  • root

infinigen.core.init.apply_gin_configs(...)[source]#

Apply gin configuration files and bindings.

Parameters:
  • configs_folder (Path) -- The path to the toplevel folder containing the gin configuration files.

  • configs (list[str]) -- A list of filenames to find within the configs_folder.

  • overrides (list[str]) -- A list of gin-formatted pairs to override the configs with.

  • skip_unknown (bool) -- If True, ignore errors for configs that were set by the user but not used anywhere

  • mandatory_folders (list[Path]) -- For each folder in the list, at least one config file must be loaded from that folder.

  • mutually_exclusive_folders (list[Path]) -- For each folder in the list, at most one config file must be loaded from that folder.

  • config_folders (Path | list[Path])

  • finalize_config -- (default: False)

infinigen.core.init.configure_render_cycles(...)[source]#
Parameters:
  • min_samples

  • num_samples

  • time_limit

  • adaptive_threshold

  • exposure

  • denoise

infinigen.core.init.configure_cycles_devices(use_gpu=True)[source]#
Parameters:

use_gpu -- (default: True)

infinigen.core.init.require_blender_addon(addon, fail='fatal', allow_online=False)[source]#
Parameters:
  • addon (str)

  • fail (str) -- (default: 'fatal')

  • allow_online -- (default: False)

infinigen.core.init.configure_blender(render_engine='CYCLES', motion_blur=False, motion_blur_shutter=0.5)[source]#
Parameters:
  • render_engine -- (default: 'CYCLES')

  • motion_blur -- (default: False)

  • motion_blur_shutter -- (default: 0.5)

surface#

infinigen.core.surface.remove_materials(obj)[source]#
Parameters:

obj

infinigen.core.surface.write_attribute(...)[source]#
Parameters:
  • objs

  • node_func

  • name -- (default: None)

  • data_type -- (default: None)

  • apply -- (default: False)

infinigen.core.surface.read_attr_data(...) numpy.array[source]#
Parameters:
  • obj

  • attr

  • domain -- (default: 'POINT')

  • result_dtype -- (default: None)

infinigen.core.surface.set_active(obj, name)[source]#
Parameters:
  • obj

  • name

infinigen.core.surface.write_attr_data(...)[source]#
Parameters:
  • obj

  • attr

  • data (array)

  • type -- (default: 'FLOAT')

  • domain -- (default: 'POINT')

infinigen.core.surface.new_attr_data(...)[source]#
Parameters:
  • obj

  • attr

  • type

  • domain

  • data (array)

infinigen.core.surface.smooth_attribute(...)[source]#
Parameters:
  • obj

  • name

  • iters -- (default: 20)

  • weight -- (default: 0.05)

  • verbose -- (default: False)

infinigen.core.surface.attribute_to_vertex_group(...)[source]#
Parameters:
  • obj

  • attr

  • name -- (default: None)

  • min_thresh -- (default: 0)

  • binary -- (default: False)

infinigen.core.surface.eval_argument(...)[source]#
Parameters:
  • nw

  • argument

  • default_value -- (default: 1.0)

infinigen.core.surface.shaderfunc_to_material(...)[source]#

Convert a shader_func(nw) directly to a bpy.data.material

Used in add_material and transpiler’s Nodes.SetMaterial handler

Parameters:
  • shader_func

  • name -- (default: None)

infinigen.core.surface.seed_generator(size=8, chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ')[source]#
Parameters:
  • size -- (default: 8)

  • chars -- (default: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')

infinigen.core.surface.add_material(...)[source]#
Parameters:
  • objs

  • shader_func

  • selection -- (default: None)

  • input_args -- (default: None)

  • input_kwargs -- (default: None)

  • name -- (default: None)

  • reuse -- (default: False)

infinigen.core.surface.assign_material(objs, material, selection=None)[source]#
Parameters:
infinigen.core.surface.add_geomod(...)[source]#
Parameters:
  • objs

  • geo_func

  • name -- (default: None)

  • apply -- (default: False)

  • reuse -- (default: False)

  • input_args -- (default: None)

  • input_kwargs -- (default: None)

  • attributes -- (default: None)

  • show_viewport -- (default: True)

  • selection -- (default: None)

  • domains -- (default: None)

  • input_attributes -- (default: None)

class infinigen.core.surface.NoApply[source]#

Bases: object

static apply(objs, *args, **kwargs)[source]#
Parameters:

objs

tagging#

class infinigen.core.tagging.AutoTag[source]#

Bases: object

tag_dict = {}#
clear()[source]#
save_tag(path='./MaskTag.json')[source]#
Parameters:

path -- (default: './MaskTag.json')

load_tag(path='./MaskTag.json')[source]#
Parameters:

path -- (default: './MaskTag.json')

relabel_obj(root_obj)[source]#
Parameters:

root_obj

infinigen.core.tagging.print_segments_summary(obj)[source]#
Parameters:

obj (Object)

infinigen.core.tagging.tag_object(obj, name=None, mask=None)[source]#
Parameters:
  • obj

  • name -- (default: None)

  • mask -- (default: None)

infinigen.core.tagging.vert_mask_to_tri_mask(obj, vert_mask, require_all=True)[source]#
Parameters:
  • obj

  • vert_mask

  • require_all -- (default: True)

infinigen.core.tagging.tag_canonical_surfaces(obj, rtol=0.01)[source]#
Parameters:
  • obj

  • rtol -- (default: 0.01)

infinigen.core.tagging.tag_nodegroup(...)[source]#
Parameters:
  • nw (NodeWrangler)

  • input_node

  • name (Tag)

  • selection -- (default: None)

infinigen.core.tagging.union_object_tags(obj)[source]#
Parameters:

obj

infinigen.core.tagging.tagged_face_mask(obj, tags) ndarray[source]#
Parameters:
infinigen.core.tagging.extract_tagged_faces(obj, tags, nonempty=False) bpy_types.Object[source]#

extract the surface that satisfies all tags

Parameters:
  • obj (Object)

  • tags (set)

  • nonempty -- (default: False)

infinigen.core.tagging.extract_mask(obj, face_mask, nonempty=False) bpy_types.Object[source]#
Parameters:
  • obj (Object)

  • face_mask (array)

  • nonempty -- (default: False)

infinigen.core.tagging.tag_support_surfaces(obj, angle_threshold=0.1)[source]#

Tags faces of the object (or its mesh children) whose normal is close to the +z direction with the “support” tag.

Args: obj (bpy.types.Object): The object to tag (can be any type of object). angle_threshold (float): The cosine of the maximum angle deviation from +z to be considered a support surface.

Parameters:
  • obj

  • angle_threshold -- (default: 0.1)

infinigen.core.tagging.extract_vertex_mask(obj, vertex_mask, nonempty=False) bpy_types.Object[source]#
Parameters:
  • obj (Object)

  • vertex_mask (array)

  • nonempty -- (default: False)

tags#

class infinigen.core.tags.ABCEnumMeta(cls, bases, classdict, *, boundary=None, _simple=False, **kwds)[source]#

Bases: EnumType, ABCMeta

class infinigen.core.tags.Tag[source]#

Bases: object

class infinigen.core.tags.StringTag(desc)[source]#

Bases: Tag

Parameters:

desc (str)

class infinigen.core.tags.EnumTag(value)[source]#

Bases: Tag, Enum

class infinigen.core.tags.Semantics(value)[source]#

Bases: EnumTag

Room = 'room'#
Object = 'object'#
Cutter = 'cutter'#
Kitchen = 'kitchen'#
Bedroom = 'bedroom'#
LivingRoom = 'living-room'#
Closet = 'closet'#
Hallway = 'hallway'#
Bathroom = 'bathroom'#
Garage = 'garage'#
Balcony = 'balcony'#
DiningRoom = 'dining-room'#
Utility = 'utility'#
StaircaseRoom = 'staircase-room'#
Warehouse = 'warehouse'#
Office = 'office'#
MeetingRoom = 'meeting-room'#
OpenOffice = 'open-office'#
BreakRoom = 'break-room'#
Restroom = 'restroom'#
FactoryOffice = 'factory-office'#
Root = 'root'#
New = 'new'#
RoomNode = 'room-node'#
GroundFloor = 'ground'#
SecondFloor = 'second-floor'#
ThirdFloor = 'third-floor'#
Exterior = 'exterior'#
Staircase = 'staircase'#
Visited = 'visited'#
RoomContour = 'room-contour'#
Furniture = 'furniture'#
FloorMat = 'FloorMat'#
WallDecoration = 'wall-decoration'#
HandheldItem = 'handheld-item'#
Storage = 'storage'#
Seating = 'seating'#
LoungeSeating = 'lounge-seating'#
Table = 'table'#
Bathing = 'bathing'#
SideTable = 'side-table'#
Watchable = 'watchable'#
Desk = 'desk'#
Bed = 'bed'#
Sink = 'sink'#
CeilingLight = 'ceiling-light'#
Lighting = 'lighting'#
KitchenCounter = 'kitchen-counter'#
KitchenAppliance = 'kitchen-appliance'#
TableDisplayItem = 'table-display-item'#
OfficeShelfItem = 'office-shelf-item'#
KitchenCounterItem = 'kitchen-counter-item'#
FoodPantryItem = 'food-pantry'#
BathroomItem = 'bathroom-item'#
ShelfTrinket = 'shelf-trinket'#
Dishware = 'dishware'#
Cookware = 'cookware'#
Utensils = 'utensils'#
ClothDrapeItem = 'cloth-drape'#
AccessTop = 'access-top'#
AccessFront = 'access-front'#
AccessAnySide = 'access-any-side'#
AccessAllSides = 'access-all-sides'#
AccessStandingNear = 'access-stand-near'#
AccessSit = 'access-stand-near'#
AccessOpenDoor = 'access-open-door'#
AccessHand = 'access-with-hand'#
Chair = 'chair'#
Window = 'window'#
Open = 'open'#
Entrance = 'entrance'#
Door = 'door'#
RealPlaceholder = 'real-placeholder'#
OversizePlaceholder = 'oversize-placeholder'#
AssetAsPlaceholder = 'asset-as-placeholder'#
AssetPlaceholderForChildren = 'asset-placeholder-for-children'#
PlaceholderBBox = 'placeholder-bbox'#
SingleGenerator = 'single-generator'#
NoRotation = 'no-rotation'#
NoCollision = 'no-collision'#
NoChildren = 'no-children'#
class property floors#

Built-in mutable sequence.

If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.

class infinigen.core.tags.Subpart(value)[source]#

Bases: EnumTag

SupportSurface = 'support'#
Interior = 'interior'#
Visible = 'visible'#
Bottom = 'bottom'#
Top = 'top'#
Side = 'side'#
Back = 'back'#
Front = 'front'#
Ceiling = 'ceiling'#
Wall = 'wall'#
StaircaseWall = 'staircase-wall'#
class infinigen.core.tags.FromGenerator(generator: 'type')[source]#

Bases: Tag

Parameters:

generator (type)

class infinigen.core.tags.Negated(tag: 'Tag')[source]#

Bases: Tag

Parameters:

tag (Tag)

class infinigen.core.tags.Variable(name: 'str')[source]#

Bases: Tag

Parameters:

name (str)

class infinigen.core.tags.SpecificObject(name: 'str')[source]#

Bases: Tag

Parameters:

name (str)

infinigen.core.tags.decompose_tags(tags)[source]#
Parameters:

tags (set[Tag])

infinigen.core.tags.contradiction(tags)[source]#
Parameters:

tags (set[Tag])

infinigen.core.tags.implies(t1, t2)[source]#
Parameters:
infinigen.core.tags.satisfies(t1, t2)[source]#
Parameters:
infinigen.core.tags.difference(t1, t2)[source]#

Return a set of predicates representing the difference

If the difference is empty, will return a contradictory set of predicates.

Parameters:
infinigen.core.tags.to_tag(s, fac_context=None) Tag[source]#
Parameters:
  • s (str | Tag | type)

  • fac_context -- (default: None)

infinigen.core.tags.to_string(tag)[source]#
Parameters:

tag (Tag | str)

infinigen.core.tags.to_tag_set(x, fac_context=None)[source]#
Parameters:
  • x

  • fac_context -- (default: None)

Module contents#