YAML: sceneclassSceneConfig

Scene

Declaratively describes the simulation world: base environment, robots, objects, sensors, and lights. SceneManager instantiates and injects all entities at runtime.

sourcefastsim/configs/scene_cfg.py

Top-level Fields8

FieldTypeRequiredDefaultDescription / Constraints
namestringoptionalScene name
positionlist[3]optional[0.0, 0.0, 0.0]Scene base position [x, y, z] in meters
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Scene base rotation as quaternion [w, x, y, z]
Must be a unit quaternion: w²+x²+y²+z²=1
base_configBaseConfigoptionalGround / environment config; type selected via the stereotype field
robot_cfg_dictdict[str, RobotConfig]optional{}Robot config dict; key is instance name, accessed via SceneManager.get_robot(name)
object_cfg_dictdict[str, ObjectConfig]optional{}Scene object config dict; key is instance name
sensor_cfg_dictdict[str, SensorConfig]optional{}Sensor config dict; key is instance name
light_cfg_dictdict[str, LightConfig]optional{}Light source config dict; key is instance name

BaseConfig: Ground & Environment (base_config)

Each scene has exactly one Base that defines the physics ground or loads a full environment USD. The concrete subclass is selected by stereotype.

classGroundPlaneBaseConfigstereotypeground_planeextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/ground_plane_base.py
FieldTypeRequiredDefaultDescription / Constraints
ground_plane_sizelist[2]optional[10.0, 10.0]Ground visual size [x, y] in meters; physics extends infinitely
Each value must be > 0
Inherited fromSpawnableConfig5
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"ground_plane"
namestringrequiredEntity name
1-100 chars, no / or \
prim_pathstringoptionalUSD prim path
Must start with /
positionlist[3]optional[0.0, 0.0, 0.0]Position [x, y, z] in meters
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation (quaternion [w, x, y, z])
classUsdBaseConfigstereotypeusdextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/usd_base.py
FieldTypeRequiredDefaultDescription / Constraints
asset_pathstringrequiredEnvironment USD file path (supports root_key:// protocol)
sourcestringrequiredlocalAsset source
local / remote / platform
Inherited fromSpawnableConfig5
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"usd"
namestringrequiredEntity name
prim_pathstringoptionalUSD prim path
positionlist[3]optional[0.0, 0.0, 0.0]Position [x, y, z]
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation (quaternion)
classEmptyBaseConfigstereotypeemptyextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/empty_base.py
Inherited fromSpawnableConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"empty" — for fully custom physics scenes
namestringrequiredEntity name
positionlist[3]optional[0.0, 0.0, 0.0]Position
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation
classMeshBaseConfigstereotypemeshextendsBaseConfig, SpawnableConfigfastsim/unisim/bases/models/mesh_base.py
FieldTypeRequiredDefaultDescription / Constraints
asset_pathstringrequiredMesh file path (supports root_key:// protocol)
sourcestringrequiredlocalAsset source
local / remote / platform
scalelist[3]optional[1.0, 1.0, 1.0]Mesh scale [x, y, z]
enable_collisionbooloptionaltrueWhether the mesh participates in collisions; false = visual-only background
Inherited fromSpawnableConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"mesh"
namestringrequiredEntity name
positionlist[3]optional[0.0, 0.0, 0.0]Position
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation

ObjectConfig: Scene Objects (object_cfg_dict)

classRigidObjectConfigstereotyperigidextendsObjectConfig, SpawnableConfigfastsim/unisim/objects/models/rigid_object.py
FieldTypeRequiredDefaultDescription / Constraints
massfloatoptionalnullObject mass in kg; takes priority over density when both set
densityfloatoptional1000Object density in kg/m³; used only when mass is null
disable_gravitybooloptionalfalseWhether to disable gravity
kinematic_enabledbooloptionalfalseEnable kinematic mode (not affected by forces)
disable_rigid_bodybooloptionalfalseDisable rigid body properties
linear_dampingfloatoptionalnullLinear damping
angular_dampingfloatoptionalnullAngular damping
static_frictionfloatoptional0.8Static friction coefficient (overrides any friction material baked in source USD)
dynamic_frictionfloatoptional0.8Dynamic friction coefficient (overrides any friction material baked in source USD)
restitutionfloatoptional0.0Restitution coefficient (0 = no bounce, 1 = perfectly elastic)
enable_collisionboolrequiredtrueEnable collision
primitive_typeenumoptionalPrimitive shape type (required when source is primitive)
box / sphere / cylinder / cone / capsule / disk
primitive_radiusfloatoptionalPrimitive radius (sphere / cylinder / cone / capsule)
primitive_sizelist[3]optionalPrimitive size [x, y, z] (box)
primitive_heightfloatoptionalPrimitive height (cylinder / cone / capsule)
primitive_axisstringoptionalZPrimitive axis (cylinder / cone / capsule)
X / Y / Z
primitive_colorlist[3]optionalnullRGB diffuse color, each component in [0, 1]
Inherited fromObjectConfig4
FieldTypeRequiredDefaultDescription / Constraints
sourcestringrequiredprimitiveAsset source
local / remote / platform / primitive
asset_pathstringoptionalUSD asset path (required when source is local/remote)
scalelist[3]optional[1, 1, 1]Scale [x, y, z]
axis_y_upbooloptionalfalseWhether the asset uses Y-up axis
Inherited fromSpawnableConfig5
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"rigid"
namestringrequiredEntity name
prim_pathstringoptionalUSD prim path
positionlist[3]optional[0.0, 0.0, 0.0]Position [x, y, z]
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation (quaternion)
classArticulatedObjectConfigstereotypearticulatedextendsObjectConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/objects/models/articulated_object.py
Inherited fromArticulationConfig3
FieldTypeRequiredDefaultDescription / Constraints
actuator_cfg_dictdict[str, ActuatorConfig]required{}Actuator config dict (joint drive groups)
init_joint_positiondict[str, float]optional{}Initial joint positions
init_joint_velocitydict[str, float]optional{}Initial joint velocities
Inherited fromObjectConfig3
FieldTypeRequiredDefaultDescription / Constraints
sourcestringrequiredlocalAsset source
local / remote / platform
asset_pathstringrequiredUSD asset path
scalelist[3]optional[1, 1, 1]Scale
Inherited fromSpawnableConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"articulated"
namestringrequiredEntity name
positionlist[3]optional[0.0, 0.0, 0.0]Position
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation
classSoftObjectConfigstereotypesoftextendsObjectConfig, SpawnableConfigfastsim/unisim/objects/models/soft_object.py
FieldTypeRequiredDefaultDescription / Constraints
massfloatrequired0.1Total object mass in kg
densityfloatrequired1000Object density in kg/m³
youngs_modulusfloatoptional10000Young's modulus for volumetric soft body (Pa)
poissons_ratiofloatoptional0.3Poisson's ratio, lateral-to-axial strain ratio
Must be in [0, 0.5)
dampingfloatoptional0.01Global damping coefficient
dynamic_frictionfloatoptional0.5Dynamic friction coefficient
static_frictionfloatoptional0.5Static friction coefficient
stretch_stiffnessfloatoptional10000Stretch stiffness (N/m), cloth only
shear_stiffnessfloatoptional1000Shear stiffness (N/m), cloth only
bending_stiffnessfloatoptional10.0Bending stiffness (N·m), cloth only
pressurefloatoptional0.0Internal pressure (Pa) for inflatable bodies; 0 disables
soft_body_typeenumoptionalvolumetricSoft-body model type hint for the simulator
cloth / volumetric / inflatable
simulation_hex_meshbooloptionalfalseUse hexahedral mesh for volumetric FEM; defaults to tetrahedral
particle_contact_offsetfloatoptional0.02Particle contact detection radius (meters)
solver_position_iterationsintoptional16Position-projection iterations per step
>= 1
enable_collisionboolrequiredtrueEnable collision with other objects
self_collisionbooloptionalfalseEnable self-collision within the soft body
disable_gravitybooloptionalfalseDisable gravity for the soft body
Inherited fromObjectConfig4
FieldTypeRequiredDefaultDescription / Constraints
sourcestringrequiredprimitiveAsset source
local / remote / platform / primitive
asset_pathstringoptionalUSD asset path
scalelist[3]optional[1, 1, 1]Scale
axis_y_upbooloptionalfalseAsset uses Y-up axis
Inherited fromSpawnableConfig5
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"soft"
namestringrequiredEntity name
prim_pathstringoptionalUSD prim path
positionlist[3]optional[0.0, 0.0, 0.0]Position
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation

RobotConfig: Robot (robot_cfg_dict)

PlannerConfig is a nested config extended by user-defined planner implementations; base robot fields are in RobotConfig, concrete subclass selected by stereotype.

classGeneralRobotConfigstereotypegeneral_robotextendsRobotConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/robots/models/general_robot.py
Inherited fromRobotConfig4
FieldTypeRequiredDefaultDescription / Constraints
ee_link_namestringoptionalEnd-effector link name (shorthand for single-arm; use modules.arms for multi-arm)
ik_joint_nameslist[str]optionalJoint names used for IK (defaults to all movable joints)
use_plannerbooloptionalfalseWhether to attach a motion planner (e.g. CuRobo / OMPL)
planner_cfgPlannerConfigoptionalPlanner configuration, active when use_planner is true
Inherited fromArticulationConfig6
FieldTypeRequiredDefaultDescription / Constraints
asset_pathstringrequiredRobot USD asset path
sourcestringrequiredlocalAsset source
local / remote / platform
actuator_cfg_dictdict[str, ActuatorConfig]required{}Actuator config dict
init_joint_positiondict[str, float]optional{}Initial joint positions
init_joint_velocitydict[str, float]optional{}Initial joint velocities
scalelist[3]optional[1, 1, 1]Scale
Inherited fromSpawnableConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"general_robot"
namestringrequiredEntity name
positionlist[3]optional[0.0, 0.0, 0.0]Position
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation
classModularRobotConfigstereotypemodular_robotextendsRobotConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/robots/models/modular_robot.py
FieldTypeRequiredDefaultDescription / Constraints
base_moduleBaseModuleConfigoptionalnullMobile base module configuration
arm_modulesdict[str, ArmModuleConfig]optional{}Arm module dict; key is arm name (e.g. left_arm, right_arm)
extra_modulesdict[str, ExtraModuleConfig]optional{}Extra module dict (e.g. lift column, head)
Inherited fromArticulationConfig2
FieldTypeRequiredDefaultDescription / Constraints
asset_pathstringrequiredRobot USD asset path
actuator_cfg_dictdict[str, ActuatorConfig]required{}Actuator config dict
Inherited fromSpawnableConfig2
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"modular_robot"
namestringrequiredEntity name
classArmModuleConfigfastsim/unisim/robots/models/modules/arm_module.py
FieldTypeRequiredDefaultDescription / Constraints
arm_actuator_namestringrequiredArm actuator group name (must match key in actuator_cfg_dict)
ee_link_namestringoptionalEnd-effector link name for IK, EE pose, and planner
ee_typestringoptionalnoneEnd-effector type
gripper / dexterous_hand / none
ee_actuator_namestringoptionalEnd-effector (gripper/hand) actuator group name
planner_cfgPlannerConfigoptionalPer-arm planner config (overrides robot-level planner)
ee_conventionstring | list[4]optionalzEE forward axis convention. String for gripper axis (z / -x / etc.), quaternion [w,x,y,z] for dexterous hand
classBaseModuleConfigfastsim/unisim/robots/models/modules/base_module.py
FieldTypeRequiredDefaultDescription / Constraints
base_actuator_namestringrequiredBase actuator group name
base_typestringoptionaldifferentialBase kinematics type
differential / omnidirectional / ackermann / legged
wheel_separationfloatoptionalnullWheel separation in meters (differential/omnidirectional)
wheel_radiusfloatoptionalnullWheel radius in meters
locomotion_cfgdictoptionalnullLegged locomotion controller config (used when base_type is legged); see LeggedLocomotionConfig
planner_cfgPlannerConfigoptionalnullBase navigation planner config (e.g. A*+DWA / curobo_mpc_nav)
virtual_base_link_namestringoptionalnullVirtual base link name (used for planning in virtual base frame, paired with BaseActuatorConfig.virtual_base_link_name)
classExtraModuleConfigfastsim/unisim/robots/models/modules/extra_module.py
FieldTypeRequiredDefaultDescription / Constraints
actuator_namestringrequiredActuator group name for this module (e.g. lift column, head gimbal)
classPlannerConfigfastsim/configs/scene_cfg.py
FieldTypeRequiredDefaultDescription / Constraints
namestringoptionaldefault_planner_namePlanner name
stereotypestringrequiredPlanner type
curobo / ompl / custom
lazy_initbooloptionalfalseLazy initialization (load on first use)
classCuroboPlannerConfigstereotypecuroboextendsPlannerConfigfastsim/planner/planners/curobo/curobo_planner_cfg.py
FieldTypeRequiredDefaultDescription / Constraints
devicestringoptionalcudaCompute device
cpu / cuda
robot_config_filestringrequiredRobot URDF/asset path
world_config_filestringoptionalCollision world config file
world_config_sourcestringoptionalstageCollision world source
stage / config_file
world_stage_ignore_substringslist[str]optional[]Path substrings to ignore when building collision world from stage
world_stage_only_pathslist[str]optional["/World"]Only include these stage paths
world_stage_reference_prim_pathstringoptionalnullStage reference prim path
Must start with /
interpolation_dtfloatoptional0.0167Trajectory interpolation timestep in seconds
attach_surface_sphere_radiusfloatoptional0.001Attach surface sphere radius
collision_activation_distancefloatoptional0.02Collision activation distance in meters
use_cuda_graphbooloptionalfalseWhether to use CUDA Graph for acceleration
warmup_enablebooloptionaltrueRun motion_gen.warmup() after MotionGen init. False = skip ~7 warmup plans (slow first plan but good for one-shot data generation; bad for long-running multi-plan loops)
warmup_js_trajoptbooloptionaltrueInclude 3x joint-space trajopt warmups. Set False if you only ever call cartesian planning (FastSim gen_motion_plan does)
warmup_graphbooloptionaltrueInclude graph-search warmup and 1x cartesian-with-graph warmup. Set False if you never plan with enable_graph=True
classOmplPlannerConfigstereotypeomplextendsPlannerConfigfastsim/planner/planners/ompl/ompl_planner_cfg.py
FieldTypeRequiredDefaultDescription / Constraints
robot_urdf_pathstringrequiredRobot URDF file path for collision model
ee_link_namestringoptionalEnd-effector link name
planning_algorithmstringoptionalRRTConnectPlanning algorithm
RRTConnect / RRTstar / PRM / BITstar / LazyPRM / KPIECE / EST / SBL
planning_timefloatoptional5.0Planning time limit in seconds
interpolation_resolutionfloatoptional0.01Trajectory interpolation resolution
collision_check_resolutionfloatoptional0.01Collision check resolution
rangefloatoptional0.0RRT range; 0 = auto
simplify_pathbooloptionaltrueWhether to simplify the planned path
num_ik_samplesintoptional100Number of IK samples
classNavigationPlannerConfigextendsPlannerConfigfastsim/planner/navigation_planner_cfg.py
FieldTypeRequiredDefaultDescription / Constraints
map_resolutionfloatoptional0.05Occupancy grid resolution (m/cell)
map_widthfloatoptional20.0Map width (m)
map_heightfloatoptional20.0Map height (m)
map_origin_xfloatrequired-10.0Map origin X in world frame (m)
map_origin_yfloatoptional-10.0Map origin Y in world frame (m)
robot_radiusfloatrequired0.2Robot collision radius (m)
obstacle_radiusfloatoptionalnullPer-obstacle stamping radius; null falls back to robot_radius
astar_resolutionfloatoptional0.1A* grid resolution (m), can be coarser than map_resolution
simplify_pathbooloptionaltrueShortcut A* paths with line-of-sight pruning
path_waypoint_spacingfloatoptional0.75Max spacing between simplified path waypoints (m); <= 0 disables
obstacle_ignore_substringslist[str]optional[]Ignore objects whose names contain these substrings
classAStarDWAPlannerConfigstereotypeastar_dwaextendsNavigationPlannerConfig, PlannerConfigfastsim/planner/planners/astar_dwa/astar_dwa_planner_cfg.py
FieldTypeRequiredDefaultDescription / Constraints
max_speedfloatrequired0.5DWA max linear speed (m/s)
min_speedfloatrequired-0.2DWA min linear speed (negative = reverse)
max_yaw_ratefloatrequired1.0DWA max yaw rate (rad/s)
max_accelfloatrequired0.3DWA max linear acceleration (m/s²)
max_delta_yaw_ratefloatrequired1.0DWA max yaw rate change (rad/s²)
v_resolutionfloatrequired0.02Linear velocity sampling resolution (m/s)
yaw_rate_resolutionfloatrequired0.05Yaw rate sampling resolution (rad/s)
dtfloatrequired0.1DWA prediction time step (s)
predict_timefloatrequired2.0DWA prediction horizon (s)
to_goal_cost_gainfloatrequired0.3DWA heading-to-goal cost weight
speed_cost_gainfloatrequired1.0DWA speed cost weight
obstacle_cost_gainfloatrequired1.0DWA obstacle avoidance cost weight
path_cost_gainfloatrequired0.5DWA global path following cost weight
goal_pos_tolerancefloatrequired0.1Goal position tolerance (m)
goal_angle_tolerancefloatrequired0.2Goal angle tolerance (rad)
Inherited fromNavigationPlannerConfig3
FieldTypeRequiredDefaultDescription / Constraints
map_resolutionfloatoptional0.05Grid resolution
robot_radiusfloatrequired0.2Robot collision radius
obstacle_ignore_substringslist[str]optional[]Obstacle ignore substrings
classCuroboMpcNavigationPlannerConfigstereotypecurobo_mpc_navextendsNavigationPlannerConfig, PlannerConfigfastsim/planner/planners/curobo_mpc_nav/curobo_mpc_nav_planner_cfg.py
FieldTypeRequiredDefaultDescription / Constraints
devicestringoptionalcudaTorch device for MPC solver
robot_config_filestringrequiredPath to base-only curobo robot YAML (asset:// URI accepted)
world_stage_only_pathslist[str]optional["/World"]Stage subtrees ingested as MPC obstacles
world_stage_ignore_substringslist[str]optional[]Prim-name substrings to skip during stage ingestion
world_stage_reference_prim_pathstringoptionalnullRobot base prim path; used for relative pose framing
interpolation_dtfloatoptional0.0167MPC integration step (s)
collision_activation_distancefloatoptional0.01CuRobo collision margin (m)
use_mppibooloptionaltrueEnable MPPI sampling sub-solver
use_lbfgsbooloptionalfalseEnable L-BFGS sub-solver
use_cuda_graphbooloptionalfalseEnable CUDA graph capture
mpc_step_max_attemptsintoptional1Per-tick MPC step max attempts
waypoint_reach_radiusfloatoptional0.15Position tolerance for translate sub-poses (m)
angle_reach_tolerancefloatoptional0.05Yaw tolerance for rotate sub-poses (rad, ~2.9°)
replan_period_sfloatoptional1.0Legacy field; no longer used (cached waypoints)
goal_pos_tolerancefloatrequired0.1Goal position tolerance (m)
goal_angle_tolerancefloatrequired0.2Goal angle tolerance (rad)
base_joint_nameslist[str]required["joint_mobile_forward", "joint_mobile_side", "joint_mobile_yaw"]The 3 base joints the planner writes position targets to

SensorConfig: Sensor (sensor_cfg_dict)

classCameraConfigstereotypecameraextendsSensorConfig, SpawnableConfigfastsim/unisim/sensors/models/camera.py
FieldTypeRequiredDefaultDescription / Constraints
data_typeslist[str]required["rgb"]List of data types to collect
rgb / depth / semantic_segmentation / instance_segmentation / normals
widthintrequired640Image width in pixels
heightintrequired480Image height in pixels
camera_modelenumoptionalpinholeCamera model type
pinhole / fisheye
fix_camerabooloptionalfalseWhether to fix camera pose
clip_rangelist[2]optional[0.001, 1000.0]Depth clip range [near, far] in meters
focal_lengthfloatoptional24.0Focal length in mm
focus_distancefloatoptional400.0Focus distance
f_stopfloatoptional0.0F-stop value (0 = disable depth of field)
horizontal_aperturefloatoptional20.955Horizontal aperture
vertical_aperturefloatoptionalnullVertical aperture (null = auto-calculated)
horizontal_aperture_offsetfloatoptional0.0Horizontal aperture offset
vertical_aperture_offsetfloatoptional0.0Vertical aperture offset
attach_toAttachToConfigoptionalAttach configuration (mount to an entity or link)
look_atLookAtConfigoptionalLook-at configuration (point toward a target or coordinate)
conventionenumoptionalworldCoordinate convention
world (+X:forward +Z:up) / opengl (-Z:forward +Y:up) / ros (+Z:forward -Y:up)
Inherited fromSpawnableConfig5
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"camera"
namestringrequiredSensor name
prim_pathstringoptionalUSD prim path
positionlist[3]optional[0.0, 0.0, 0.0]Position [x, y, z]
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation (quaternion)

LightConfig: Light (light_cfg_dict)

classGeneralLightConfigstereotypegeneral_lightextendsLightConfig, SpawnableConfigfastsim/unisim/lights/models/general_light.py
FieldTypeRequiredDefaultDescription / Constraints
light_typeenumrequiredLight type
distant / sphere / disk
intensityfloatoptional1.0Light intensity
>= 0
exposurefloatoptional0.0Exposure value
colorlist[3]optional[1.0, 1.0, 1.0]Color [r, g, b] in 0–1 range
visiblebooloptionaltrueWhether the light mesh itself is visible in the render
enable_color_temperaturebooloptionalfalseEnable color temperature (overrides color when enabled)
color_temperaturefloatoptional6500Color temperature in Kelvin
normalizebooloptionalfalseWhether to normalize light intensity
radiusfloatoptionalLight radius (sphere type)
> 0
anglefloatoptionalLight angle (distant type)
texture_filestringoptionalTexture file path
Inherited fromSpawnableConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"general_light"
namestringrequiredLight name
positionlist[3]optional[0.0, 0.0, 0.0]Position
rotationlist[4]optional[1.0, 0.0, 0.0, 0.0]Rotation

Example

scene blockYAML
scene:
  name: pick_and_place_scene
  position: [0.0, 0.0, 0.0]
  rotation: [1.0, 0.0, 0.0, 0.0]

  base_config:
    stereotype: ground_plane
    ground_plane_size: [10.0, 10.0]

  robot_cfg_dict:
    arm:
      stereotype: modular_robot
      asset_path: assets://robots/ur5_with_gripper.usd
      use_planner: true
      actuator_cfg_dict:
        arm:
          joint_names_expr: ["joint_*"]
          stiffness: 50000.0
          damping: 800.0
        gripper:
          stereotype: gripper
          joint_names_expr: ["finger_*"]
      arm_modules:
        main_arm:
          arm_actuator_name: arm
          ee_link_name: tool0
          ee_type: gripper
          ee_actuator_name: gripper

  object_cfg_dict:
    cube:
      stereotype: rigid
      asset_path: assets://objects/cube_red.usd
      mass: 0.2
      enable_gravity: true
    cloth:
      stereotype: soft
      asset_path: assets://objects/cloth.usd
      soft_body_type: cloth
      mass: 0.05
      stretch_stiffness: 8000
      bending_stiffness: 5.0

  sensor_cfg_dict:
    wrist_cam:
      stereotype: camera
      width: 640
      height: 480
      data_types: [rgb, depth]
      attach_to: arm
      convention: ros

  light_cfg_dict:
    main_light:
      stereotype: general_light
      light_type: distant
      intensity: 3000
      color: [1.0, 1.0, 1.0]