Placement (.core.placement)#
animation_policy#
- exception infinigen.core.placement.animation_policy.PolicyError[source]#
Bases:
ValueError
- infinigen.core.placement.animation_policy.get_altitude(loc, scene_bvh, dir=Vector((0.0, 0.0, -1.0)))[source]#
- Parameters:
loc
scene_bvh
dir -- (default:
Vector((0.0, 0.0, -1.0)))
- infinigen.core.placement.animation_policy.walk_same_altitude(...)[source]#
fall_ratio: what is the slope at which the camera is willing to go down / glide
- Parameters:
start_loc
sampler
bvh
filter_func -- (default:
None)fall_ratio -- (default:
1.5)retries -- (default:
30)step_up_height -- (default:
2)ignore_missed_rays -- (default:
False)z_move_up -- (default:
1)
- class infinigen.core.placement.animation_policy.AnimPolicyBrownian(speed=3, pos_var=15.0)[source]#
Bases:
object
- class infinigen.core.placement.animation_policy.AnimPolicyPan(speed=3, dist=('uniform', 5, 20), rot_var=[10, 0, 20])[source]#
Bases:
object
- class infinigen.core.placement.animation_policy.AnimPolicyRandomForwardWalk(
- forward_vec,
- speed=2,
- yaw_dist=('uniform', -30, 30),
- altitude_var=0,
- step_range=(1, 10),
- rot_vars=[5, 0, 5],
Bases:
object
- class infinigen.core.placement.animation_policy.AnimPolicyRandomWalkLookaround(
- speed=('uniform', 1, 2.5),
- step_speed_mult=('uniform', 0.5, 2),
- yaw_sampler=('uniform', -20, 20),
- step_range=('clip_gaussian', 3, 5, 0.5, 10),
- rot_vars=(5, 0, 5),
- motion_dir_zoff=('uniform', 0, 360),
- force_single_keyframe=False,
Bases:
object
- class infinigen.core.placement.animation_policy.AnimPolicyFollowObject(
- target_obj,
- pois,
- bvh,
- zrot_vel_var=20,
- follow_zrot=0,
- follow_rad_mult=('uniform', 1, 6),
- alt_mult=('uniform', 0.25, 1),
Bases:
object
- infinigen.core.placement.animation_policy.validate_keyframe_range(...)[source]#
- Parameters:
obj
start_frame
end_frame
bvhtree
validate_pose_func -- (default:
None)stride -- (default:
1)check_straight_line -- (default:
True)check_keyframe_straight_line -- (default:
True)
- infinigen.core.placement.animation_policy.try_animate_trajectory(...)[source]#
- Parameters:
obj (Object)
bvh (BVHTree)
policy_func
keyframe
duration_frames
validate_pose_func -- (default:
None)max_step_tries -- (default:
50)verbose -- (default:
True)
- infinigen.core.placement.animation_policy.try_animate_with_pathfinding(...)[source]#
- Parameters:
obj
bvh
policy_func
keyframe
duration_frames
validate_pose_func
max_step_tries
verbose
bounding_box
turning_limit_degree -- (default:
10)
- infinigen.core.placement.animation_policy.keyframe(...)[source]#
- Parameters:
obj
loc
rot
t
interp -- (default:
'BEZIER')
- infinigen.core.placement.animation_policy.animate_trajectory(...)[source]#
- Parameters:
obj
bvh
policy_func
validate_pose_func -- (default:
None)max_step_tries -- (default:
25)max_full_retries -- (default:
40)retry_rotation -- (default:
False)verbose -- (default:
True)fatal -- (default:
False)reverse_time -- (default:
False)bounding_box -- (default:
None)path_finding_enabled -- (default:
False)
camera#
- infinigen.core.placement.camera.get_sensor_coords(...)[source]#
- Parameters:
cam
H
W
sparse -- (default:
False)
- infinigen.core.placement.camera.spawn_camera_rigs(camera_rig_config, n_camera_rigs) list[bpy_types.Object][source]#
- Parameters:
camera_rig_config
n_camera_rigs
- infinigen.core.placement.camera.terrain_camera_query(...)[source]#
- Parameters:
cam (Object)
scene_bvh (BVHTree)
terrain_tags_queries
vertexwise_min_dist
min_dist -- (default:
0)
- class infinigen.core.placement.camera.CameraProposal(
- loc: <built-in function array>,
- rot: <built-in function array>,
- focal_length: float,
Bases:
object- Parameters:
loc (array)
rot (array)
focal_length (float)
- infinigen.core.placement.camera.camera_pose_proposal(...)[source]#
- Parameters:
scene_bvh
center_coordinate -- (default:
None)radius -- (default:
None)bbox -- (default:
None)altitude -- (default:
('uniform', 1.5, 2.5))roll -- (default:
0)yaw -- (default:
('uniform', -180, 180))pitch -- (default:
90)focal_length -- (default:
50)override_loc -- (default:
None)
- infinigen.core.placement.camera.keep_cam_pose_proposal(...)[source]#
- Parameters:
cam (Object)
terrain (Terrain)
scene_bvh (BVHTree)
placeholders_kd
camera_selection_answers
vertexwise_min_dist
camera_selection_ratio
min_placeholder_dist -- (default:
0)min_terrain_distance -- (default:
0)terrain_coverage_range -- (default:
(0.5, 1))
- class infinigen.core.placement.camera.AnimPolicyGoToProposals(
- speed=('uniform', 1.5, 2.5),
- min_dist=4,
- max_dist=10,
- retries=30,
Bases:
object
- infinigen.core.placement.camera.compute_base_views(...)[source]#
- Parameters:
camera_rig (Object)
n_views (int)
terrain
scene_bvh (BVHTree)
location_sample (Callable)
center_coordinate -- (default:
None)radius -- (default:
None)bbox -- (default:
None)placeholders_kd -- (default:
None)min_candidates_ratio -- (default:
20)max_tries -- (default:
30000)visualize -- (default:
False)
- infinigen.core.placement.camera.build_bvh_and_attrs(objs, tags_queries)[source]#
- Parameters:
objs
tags_queries
- infinigen.core.placement.camera.sample_random_locs(surface, eps=0.01)[source]#
- Parameters:
surface (Object)
eps -- (default:
0.01)
- infinigen.core.placement.camera.configure_cameras(...)[source]#
- Parameters:
cam_rigs
scene_preprocessed (dict)
init_bounding_box (tuple[array, array]) -- (default:
None)init_surfaces (list[Object]) -- (default:
None)terrain_mesh -- (default:
None)nonroom_objs -- (default:
None)mvs_setting -- (default:
False)mvs_radius -- (default:
('uniform', 12, 18))n_views (int) -- (default:
None)
camera_trajectories#
- infinigen.core.placement.camera_trajectories.compute_poses(...)[source]#
- Parameters:
cam_rigs
scene_preprocessed (dict)
min_candidates_ratio -- (default:
5)min_base_views_ratio -- (default:
10)
- infinigen.core.placement.camera_trajectories.compute_trajectories(...)[source]#
- Parameters:
cam_rigs
base_views
scene_preprocessed (dict)
obj_groups -- (default:
None)camera_selection_answers -- (default:
{})camera_selection_ratio -- (default:
None)min_candidates_ratio -- (default:
5)pois -- (default:
None)animation_mode (str) -- (default:
'random_walk')validate_pose_func -- (default:
None)
density#
- infinigen.core.placement.density.placement_mask(...)[source]#
- Parameters:
scale -- (default:
0.05)select_thresh -- (default:
0.55)normal_thresh -- (default:
0.5)normal_thresh_high -- (default:
2.0)normal_dir -- (default:
(0, 0, 1))tag -- (default:
None)return_scalar -- (default:
False)altitude_range -- (default:
None)
detail#
- infinigen.core.placement.detail.scatter_res_distance(dist=4)[source]#
- Parameters:
dist -- (default:
4)
- infinigen.core.placement.detail.target_face_size(...)[source]#
- Parameters:
obj
camera -- (default:
None)global_multiplier -- (default:
1)global_clip_min -- (default:
0.003)global_clip_max -- (default:
1)
- infinigen.core.placement.detail.remesh_with_attrs(...)[source]#
- Parameters:
obj
face_size
apply -- (default:
True)min_remesh_size -- (default:
None)attributes -- (default:
None)
- infinigen.core.placement.detail.sharp_remesh_with_attrs(...)[source]#
- Parameters:
obj
face_size
apply -- (default:
True)min_remesh_size -- (default:
None)attributes -- (default:
None)
- infinigen.core.placement.detail.subdivide_to_face_size(...)[source]#
- Parameters:
obj
from_facesize
to_facesize
apply -- (default:
True)max_levels -- (default:
6)
factory#
- class infinigen.core.placement.factory.AssetFactory(factory_seed=None, coarse=False)[source]#
Bases:
object
instance_scatter#
- infinigen.core.placement.instance_scatter.camera_cull_points(...)[source]#
- Parameters:
nw
fov -- (default:
25)camera -- (default:
None)near_dist_margin -- (default:
5)
- infinigen.core.placement.instance_scatter.bucketed_instance(...)[source]#
- Parameters:
nw
points
collection
distance
buckets
selection
scaling
rotation
instance_index -- (default:
None)
- infinigen.core.placement.instance_scatter.geo_instance_scatter(...)[source]#
- Parameters:
nw (NodeWrangler)
base_obj
collection
density
fov -- (default:
None)dist_max -- (default:
None)no_culling_dist -- (default:
5)min_spacing -- (default:
0)scaling -- (default:
Vector((1.0, 1.0, 1.0)))normal -- (default:
None)normal_fac -- (default:
1)rotation_offset -- (default:
None)selection -- (default:
True)taper_scale -- (default:
False)taper_density -- (default:
False)ground_offset -- (default:
0)instance_index -- (default:
None)transform_space -- (default:
'RELATIVE')reset_children -- (default:
True)realize -- (default:
False)
particles#
- infinigen.core.placement.particles.configure_boids(system_config, settings)[source]#
- Parameters:
system_config
settings
path_finding#
placement#
- infinigen.core.placement.placement.objects_to_grid(objects, spacing)[source]#
- Parameters:
objects
spacing
- infinigen.core.placement.placement.placeholder_locs(...)[source]#
- Parameters:
terrain
overall_density
selection
distance_min -- (default:
0)altitude -- (default:
0.0)max_locs -- (default:
None)
- infinigen.core.placement.placement.points_near_camera(...)[source]#
- Parameters:
cam
scene_bvh
n
alt
dist_range
- infinigen.core.placement.placement.scatter_placeholders_mesh(...)[source]#
- Parameters:
base_mesh
factory (AssetFactory)
overall_density
selection -- (default:
None)distance_min -- (default:
0)num_placeholders -- (default:
None)
- infinigen.core.placement.placement.scatter_placeholders(locations, factory)[source]#
- Parameters:
locations
factory (AssetFactory)
- infinigen.core.placement.placement.get_placeholder_points(obj) ndarray[source]#
- Parameters:
obj (Object)
- infinigen.core.placement.placement.filter_populate_targets(...) list[tuple[bpy_types.Object, float, float]][source]#
- infinigen.core.placement.placement.populate_collection(...)[source]#
- Parameters:
factory (AssetFactory)
placeholder_col (pf.Collection)
cameras (list[Object]) -- (default:
None)asset_col_target -- (default:
None)dist_cull -- (default:
None)vis_cull -- (default:
None)verbose -- (default:
True)cache_system -- (default:
None)
split_in_view#
- infinigen.core.placement.split_in_view.raycast_visiblity_mask(...)[source]#
- Parameters:
obj (Object)
cameras (list[Object])
start -- (default:
None)end -- (default:
None)verbose -- (default:
True)
- infinigen.core.placement.split_in_view.duplicate_mask(...)[source]#
- Parameters:
obj
mask
dilate -- (default:
0)invert -- (default:
False)
- infinigen.core.placement.split_in_view.compute_vis_dists(points, cam)[source]#
- Parameters:
points (array)
cam (Object)
- infinigen.core.placement.split_in_view.compute_inview_distances(...)[source]#
Compute the minimum distance of each point to any of the cameras in the scene.
Parameters: - points: an array of 3D points, in world space - cameras: a list of cameras in the scene - dist_max: the maximum distance to consider a point “in view” - vis_margin: how far outside the view frustum to consider a point “in view”
Returns: - mask: boolean array of whether each point is within within vis_margin and dist_max of any frame of any camera - min_dists: the distance of each point the closest camera - min_vis_dists: the distance of each point to the nearest point in any camera’s view frustum
- Parameters:
points (array)
cameras (list[Object])
dist_max
vis_margin
frame_start -- (default:
None)frame_end -- (default:
None)verbose -- (default:
False)