10.10.4.1. Setting

If the key-value pair in the description is neither a Mutable nor a Harmonizer, it’s a setting. You can define a description with only settings. There are several required settings:

Key

Type

Description

output_path

string
The output folder in which folders corresponding to
each switch is created

num_frames

int
Number of frames to output

screen_width

int
Screen width of output images

screen_height

int
Screen height of output images

seed

int
Global randomization seed

version

string
Version number of omni.replicator.object

A minimum description is as follows:

omni.replicator.object:
  version: 0.1.2
  num_frames: 3
  output_path: [OUTPUT_PATH]
  screen_height: 1080
  screen_width: 1920
  seed: 0

There are also optional settings:

Key

Type

Default value

Description

parent_config

string
None
Specfies the description file that this description file inherits from, in the same parent folder. Values re-defined in the current description file will override values defined in parent configs.

path_tracing

bool
False
Render mode selection

inter_frame_time

numeric
0
The simulation time between 2 frames

output_name

string
$[seed]_$[camera]
The output name of a frame that can be customized

skip_frames_with_no_visible_tracked_mutables

bool
False
If set to true, and if there are no visible tracked mutables in the scene, the frame is skipped

gravity

numeric
0
Resolves gravity during physics resolution stage

friction

numeric
1
Friction among ojects during physics resolution stage The lower the more slippery.

linear_damping

numeric
0
Linear damping of objects during physics resolution stage.

angular_damping

numeric
0
Angular damping of objects during physics resolution stage.

If optional settings are not set, they have the default values.

path_tracing

Turing it on uses the path tracer, which makes simulation slower but image quality higher; turning it off uses real-time RTX

inter_frame_time

For complex scenes, leave more time for physics resolution and rendering.

output_name

3 macros are available: $[seed] evaluates to the seed of the current frame, $[camera] evaluates to the camera name, and $[frame] evaluates to the frame index. Refer to seed for details.

Seed

Each frame is randomized with its own seed, which equals the global seed plus the frame index. For example, if global seed is 2, and 3 images are output, the frame indices for these 3 images are 0, 1, 2; and the seeds are 2, 3, 4, respectively.

Physics simulation explained

When objects are randomized in the scene each frame, they may start at an overlapping position. Resolution of physics de-penetrate these objects. The de-penetration accelerates the objects, such that they may start off with a high speed. Increase linear/anuglar damping to keep object movement contained.

However, if the dampings are set too high, objects get lazy and they don’t move too much. This can be bad in a gravity enabled setting, which we want objects to be in close contact with a surface. Since different objects have different sizes and shapes, it’s good to tune these physics properties to reach a good appearance.

Similarly, too high friction will make objects cluster if they are in close contact; while too low friction will make them slippery and glide off surfaces.

Note

If there is no object in the scene when you are expecting some objects, one reason might be that they flew away from the view frustum. Check your physics settings.

10.10.4.1.1. Switches for output graphics content

The setting output_switches controls what is output to disk per frame. It has these switches

Switch

Data

images

The RGB image of the frame

labels

2d tight bounding box and the occlusion rate information for each visible tracked object. Each line corresponds to an object, and it has Kitti format usd_base_name 0 occlusion 0 x_min y_min x_max y_max 0 0 0 0 0 0 0 [TODO]

3d_labels

3D bounding box information stored as Objectron format [TODO].

descriptions

A description file logging the current state of the scene. Using this file as input description, the same graphics content is output

segmentation

The segmentation mask of tracked mutables

Setting a switch to True or not setting the switch creates the corrensponding folder under output_path, and writes corrensponding data into it.

usd_base_name is the mutable name or the USD file base name of USD file when a geometry mesh is loaded, which means it’s not allowed to load different USD files with the same base name. Using ${resource_root_1}/apple.usd and ${resource_root_1}/inner/apple.usd in the same simulation will cause unexpected behavior.