Core Utilities (.core.util)#
blender#
- infinigen.core.util.blender.set_geometry_option(material, option='BUMP')[source]#
- Parameters:
material
option -- (default:
'BUMP')
- infinigen.core.util.blender.deep_clone_obj(obj, keep_modifiers=False, keep_materials=False)[source]#
- Parameters:
obj
keep_modifiers -- (default:
False)keep_materials -- (default:
False)
- infinigen.core.util.blender.copy(obj, keep_modifiers=False, keep_materials=False)[source]#
- Parameters:
obj
keep_modifiers -- (default:
False)keep_materials -- (default:
False)
- class infinigen.core.util.blender.EnableParentCollections(objs, target_key='hide_viewport', target_value=False)[source]#
Bases:
object
- infinigen.core.util.blender.garbage_collect(...)[source]#
- Parameters:
targets
keep_in_use -- (default:
True)keep_names -- (default:
None)verbose -- (default:
False)
- class infinigen.core.util.blender.GarbageCollect(targets=None, keep_in_use=True, keep_orig=True, verbose=False)[source]#
Bases:
object
- infinigen.core.util.blender.delete_collection(collection)[source]#
- Parameters:
collection (pf.Collection)
- infinigen.core.util.blender.get_collection(name, reuse=True)[source]#
- Parameters:
name
reuse -- (default:
True)
- infinigen.core.util.blender.put_in_collection(objs, collection, exclusive=True)[source]#
- Parameters:
objs
collection
exclusive -- (default:
True)
- infinigen.core.util.blender.group_in_collection(...)[source]#
objs: List of (None | Blender Object | List[Blender Object])
- Parameters:
objs
name (str)
reuse -- (default:
True)
- infinigen.core.util.blender.group_toplevel_collections(...)[source]#
- Parameters:
keyword
hide_viewport -- (default:
False)hide_render -- (default:
False)reuse -- (default:
True)
- infinigen.core.util.blender.spawn_empty(name, disp_type='PLAIN_AXES', s=0.1)[source]#
- Parameters:
name
disp_type -- (default:
'PLAIN_AXES')s -- (default:
0.1)
- infinigen.core.util.blender.spawn_point_cloud(name, pts, edges=None)[source]#
- Parameters:
name
pts
edges -- (default:
None)
- infinigen.core.util.blender.spawn_cube(...)[source]#
- Parameters:
size -- (default:
1)location -- (default:
(0, 0, 0))scale -- (default:
(1, 1, 1))name -- (default:
None)
- infinigen.core.util.blender.spawn_cylinder(...)[source]#
- Parameters:
radius -- (default:
1.0)depth -- (default:
2.0)location -- (default:
(0, 0, 0))scale -- (default:
(1, 1, 1))name -- (default:
None)
- infinigen.core.util.blender.spawn_sphere(...)[source]#
- Parameters:
radius -- (default:
1)location -- (default:
(0, 0, 0))scale -- (default:
(1, 1, 1))name -- (default:
None)
- infinigen.core.util.blender.spawn_icosphere(...)[source]#
- Parameters:
radius -- (default:
1)location -- (default:
(0, 0, 0))scale -- (default:
(1, 1, 1))name -- (default:
None)
- infinigen.core.util.blender.clear_scene(keep=[], targets=None, materials=True)[source]#
- Parameters:
keep -- (default:
[])targets -- (default:
None)materials -- (default:
True)
- infinigen.core.util.blender.spawn_capsule(...)[source]#
- Parameters:
rad
height
us -- (default:
32)vs -- (default:
16)
- infinigen.core.util.blender.to_mesh(object, context=<bpy_struct, Context>)[source]#
- Parameters:
object
context -- (default:
<bpy_struct, Context>)
- infinigen.core.util.blender.modify_mesh(...) bpy_types.Object[source]#
- Parameters:
obj
type
apply -- (default:
True)name -- (default:
None)return_mod -- (default:
False)ng_inputs -- (default:
None)show_viewport -- (default:
None)
- infinigen.core.util.blender.apply_transform(...)[source]#
- Parameters:
obj
loc -- (default:
False)rot -- (default:
True)scale -- (default:
True)
- infinigen.core.util.blender.boolean(objs, mode='UNION', verbose=False)[source]#
- Parameters:
objs
mode -- (default:
'UNION')verbose -- (default:
False)
- infinigen.core.util.blender.split_object(obj, mode='LOOSE')[source]#
- Parameters:
obj
mode -- (default:
'LOOSE')
- infinigen.core.util.blender.join_objects(objs, check_attributes=False)[source]#
- Parameters:
objs
check_attributes -- (default:
False)
- infinigen.core.util.blender.apply_modifiers(obj, mod=None, quiet=True)[source]#
- Parameters:
obj
mod -- (default:
None)quiet -- (default:
True)
- infinigen.core.util.blender.recalc_normals(obj, inside=False)[source]#
- Parameters:
obj
inside -- (default:
False)
- infinigen.core.util.blender.save_blend(path, autopack=False, verbose=False)[source]#
- Parameters:
path
autopack -- (default:
False)verbose -- (default:
False)
- infinigen.core.util.blender.joined_kd(objs, include_origins=False)[source]#
- Parameters:
objs
include_origins -- (default:
False)
- infinigen.core.util.blender.object_from_VF(vertices, faces, name)[source]#
- Parameters:
vertices
faces
name
- infinigen.core.util.blender.object_from_trimesh(mesh, name, material=None)[source]#
- Parameters:
mesh
name
material -- (default:
None)
- infinigen.core.util.blender.parent_to(...)[source]#
- Parameters:
a
b
type -- (default:
'OBJECT')keep_transform -- (default:
False)no_inverse -- (default:
False)no_transform -- (default:
False)
- infinigen.core.util.blender.create_noise_plane(...)[source]#
- Parameters:
size -- (default:
50)cuts -- (default:
10)std -- (default:
3)levels -- (default:
3)
camera#
imu#
- infinigen.core.util.imu.y_of_bezier(t, cy)[source]#
Returns the position of a cubic Bezier curve at t where t is in [0,1]
- Parameters:
t
cy
- infinigen.core.util.imu.v_of_bezier(t, cx, cy)[source]#
Returns the velocity of a cubic Bezier curve at t where t is in [0,1]
- Parameters:
t
cx
cy
- infinigen.core.util.imu.a_of_bezier(t, cx, cy)[source]#
Returns the acceleration of a cubic Bezier curve at t where t is in [0,1]
- Parameters:
t
cx
cy
- infinigen.core.util.imu.data_from_keyframes(...)[source]#
Return imu (acceleration or rotational velocity) and location data for an fcurve
- Parameters:
keyframe_points
frame_start
frame_end
for_acceleration
- infinigen.core.util.imu.get_imu_tum_data(object, start, end)[source]#
Returns imu and tum data of camera in file formatted strings
- Parameters:
object
start
end
logging#
- class infinigen.core.util.logging.Timer(desc, disable_timer=False, logger=None)[source]#
Bases:
object
- infinigen.core.util.logging.create_text_file(log_dir, filename, text=None)[source]#
- Parameters:
log_dir
filename
text -- (default:
None)
- exception infinigen.core.util.logging.BadSeedError[source]#
Bases:
ValueError
math#
- infinigen.core.util.math.int_hash(x, max=4294967295)[source]#
- Parameters:
x
max -- (default:
4294967295)
- infinigen.core.util.math.inverse_interpolate(vals, ds)[source]#
Find ts such that lerp_sample(vals, ts) = ds
- Parameters:
vals
ds
- infinigen.core.util.math.clip_gaussian(...)[source]#
- Parameters:
mean
std
min
max
max_tries -- (default:
20)
- infinigen.core.util.math.normalize(v, disallow_zero_norm=False, in_place=True)[source]#
- Parameters:
v
disallow_zero_norm -- (default:
False)in_place -- (default:
True)
- infinigen.core.util.math.wrap_around_cyclic_coord(u, u_start, u_end)[source]#
- Parameters:
u
u_start
u_end
- infinigen.core.util.math.new_domain_from_affine(old_domain, a=1.0, b=0.0)[source]#
old domain: domain of u(t) new domain: domain of u(f(t)), f(t) = a * t + b
- Parameters:
old_domain
a -- (default:
1.0)b -- (default:
0.0)
ocmesher_utils#
organization#
- class infinigen.core.util.organization.Task[source]#
Bases:
object- Coarse = 'coarse'#
- Populate = 'populate'#
- FineTerrain = 'fine_terrain'#
- Render = 'render'#
- GroundTruth = 'ground_truth'#
- MeshSave = 'mesh_save'#
- Export = 'export'#
- class infinigen.core.util.organization.Materials[source]#
Bases:
object- GroundCollection = 'ground_collection'#
- MountainCollection = 'mountain_collection'#
- LiquidCollection = 'liquid_collection'#
- Eroded = 'eroded'#
- Lava = 'lava'#
- Snow = 'snow'#
- Atmosphere = 'atmosphere'#
- Clouds = 'clouds'#
- Beach = 'beach'#
- all = ['ground_collection', 'mountain_collection', 'eroded', 'liquid_collection', 'lava', 'snow', 'atmosphere', 'clouds', 'beach']#
- class infinigen.core.util.organization.LandTile[source]#
Bases:
object- Canyon = 'Canyon'#
- Canyons = 'Canyons'#
- Cliff = 'Cliff'#
- Mesa = 'Mesa'#
- Mountain = 'Mountain'#
- River = 'River'#
- Volcano = 'Volcano'#
- Coast = 'Coast'#
- MultiMountains = 'MultiMountains'#
- class infinigen.core.util.organization.Assets[source]#
Bases:
object- Caves = 'Caves'#
- UpsidedownMountains = 'UpsidedownMountains'#
- Ocean = 'Ocean'#
- class infinigen.core.util.organization.AssetFile[source]#
Bases:
object- Heightmap = 'heightmap'#
- Mask = 'mask'#
- TileSize = 'tile_size'#
- Params = 'params'#
- Finish = 'finish'#
- class infinigen.core.util.organization.Process[source]#
Bases:
object- Snowfall = 'snowfall'#
- Erosion = 'erosion'#
- IceErosion = 'ice_erosion'#
- Eruption = 'eruption'#
- class infinigen.core.util.organization.TerrainNames[source]#
Bases:
object- OpaqueTerrain = 'OpaqueTerrain'#
- CollectiveTransparentTerrain = 'CollectiveTransparentTerrain'#
- class infinigen.core.util.organization.Transparency[source]#
Bases:
object- IndividualTransparent = 'IndividualTransparent'#
- CollectiveTransparent = 'CollectiveTransparent'#
- Opaque = 'Opaque'#
- class infinigen.core.util.organization.ElementNames[source]#
Bases:
object- Atmosphere = 'atmosphere'#
- Liquid = 'liquid'#
- Caves = 'caves'#
- Clouds = 'clouds'#
- LandTiles = 'landtiles'#
- Ground = 'ground'#
- Mountains = 'mountains'#
- WarpedRocks = 'warped_rocks'#
- VoronoiRocks = 'voronoi_rocks'#
- VoronoiGrains = 'voronoi_grains'#
- UpsidedownMountains = 'upsidedown_mountains'#
- Volcanos = 'volcanos'#
- FloatingIce = 'floating_ice'#
- class infinigen.core.util.organization.Tags[source]#
Bases:
object- Cave = 'cave'#
- LiquidCovered = 'liquid_covered'#
- UpsidedownMountainsLowerPart = 'upsidedown_mountain_lower_part'#
- Terrain = 'terrain'#
- Landscape = 'landscape'#
- OutOfView = 'out_of_view'#
- class infinigen.core.util.organization.Attributes[source]#
Bases:
object- BoundarySDF = 'BoundarySDF'#
- ElementTag = 'ElementTag'#
- class infinigen.core.util.organization.SelectionCriterions[source]#
Bases:
object- CloseUp = 'closeup'#
- Altitude = 'altitude'#
- class infinigen.core.util.organization.ElementTag[source]#
Bases:
object- Liquid = 0#
- Clouds = 1#
- Terrain = 2#
- WarpedRocks = 3#
- VoronoiRocks = 4#
- VoronoiGrains = 5#
- Volcanos = 6#
- FloatingIce = 7#
- UpsidedownMountains = 8#
- total_cnt = 9#
- map = ['liquid', 'clouds', 'terrain', 'warped_rocks', 'voronoi_rocks', 'voronoi_grains', 'volcanos', 'floating_ice', 'upsidedown_mountains']#
pipeline#
random#
- infinigen.core.util.random.log_uniform(low, high, size=None)[source]#
- Parameters:
low
high
size -- (default:
None)
- infinigen.core.util.random.sample_json_palette(pallette_name, n_sample=1)[source]#
- Parameters:
pallette_name
n_sample -- (default:
1)
- infinigen.core.util.random.random_color_neighbour(...)[source]#
returns a random color in the neighbourhood of the given one :param color: (r, g, b) or (r, g, b, a) :param hue_diff: maximum change in hue, if none all hue is allowed :param sat_diff: maximum change in saturation :param val_diff: maximum change in value :param only_less_hue: only small hue values smaller than the one provided in rgb :param only_less_sat: :param only_less_val: :param only_more_hue: :param only_more_sat: :param only_more_val: :return: (r, g, b) or (r, g, b, a) depending in the input
- Parameters:
rgb
- infinigen.core.util.random.clip_hsv(...)[source]#
reduces the hue, saturation and value of an rgb color
- Parameters:
rgb
max_h -- (default:
None)max_s -- (default:
None)max_v -- (default:
None)
- infinigen.core.util.random.random_color(brightness_lim=1)[source]#
- Parameters:
brightness_lim -- (default:
1)
rrt#
- infinigen.core.util.rrt.validate_node_indoors(node, obj_groups)[source]#
- Parameters:
node
obj_groups
- class infinigen.core.util.rrt.RRT(
- obj_groups,
- validate_node,
- bbox=None,
- step_range=(1, 1),
- stride_range=(16, 32),
- min_node_dist_to_obstacle=0.2,
- max_iter=2000,
Bases:
object- generate_path(start=None, goal=None)[source]#
- Parameters:
start -- (default:
None)goal -- (default:
None)