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
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

ObjectConfig: Scene Objects (object_cfg_dict)

classRigidObjectConfigstereotyperigidextendsObjectConfig, SpawnableConfigfastsim/unisim/objects/models/rigid_object.py
FieldTypeRequiredDefaultDescription / Constraints
massfloatrequired1.0Object mass in kg
densityfloatrequired1000Object density in kg/m³
disable_gravityboolrequiredfalseWhether to disable gravity
kinematic_enabledbooloptionalfalseEnable kinematic mode (not affected by forces)
disable_rigid_bodybooloptionalfalseDisable rigid body properties
enable_collisionboolrequiredtrueEnable collision
primitive_typeenumoptionalPrimitive shape type (when not using USD)
box / sphere / cylinder / cone / disk
primitive_radiusfloatoptionalPrimitive radius (sphere / cylinder / cone / disk)
primitive_sizelist[3]optionalPrimitive size [x, y, z] (box)
primitive_heightfloatoptionalPrimitive height (cylinder / cone)
Inherited fromObjectConfig4
FieldTypeRequiredDefaultDescription / Constraints
sourcestringrequiredprimitiveAsset source
local / remote / 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
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 / 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
ik_joint_nameslist[str]optionalJoint names used for IK (defaults to all movable joints)
use_plannerbooloptionalfalseWhether to attach a motion planner (e.g. Curobo)
planner_cfgPlannerConfigoptionalPlanner configuration, active when use_planner is true
Inherited fromArticulationConfig6
FieldTypeRequiredDefaultDescription / Constraints
asset_pathstringrequiredRobot USD asset path
sourcestringrequiredlocalAsset source
local / remote
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
classSingleGripperArmRobotConfigstereotypesingle_gripper_arm_robotextendsRobotConfig, ArticulationConfig, SpawnableConfigfastsim/unisim/robots/models/single_gripper_arm_robot.py
FieldTypeRequiredDefaultDescription / Constraints
arm_actuator_namestringrequiredArm actuator group name (must match the USD definition)
gripper_actuator_namestringrequiredGripper actuator group name
Inherited fromRobotConfig4
FieldTypeRequiredDefaultDescription / Constraints
ee_link_namestringoptionalEnd-effector link name
ik_joint_nameslist[str]optionalJoint names for IK
use_plannerbooloptionalfalseAttach a motion planner
planner_cfgPlannerConfigoptionalPlanner configuration
Inherited fromArticulationConfig6
FieldTypeRequiredDefaultDescription / Constraints
asset_pathstringrequiredRobot USD asset path
sourcestringrequiredlocalAsset source
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"single_gripper_arm_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
classPlannerConfigfastsim/configs/scene_cfg.py
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequiredPlanner type (defined by the planner plugin being used)
extra_parametersdictoptional{}Extra parameters interpreted by the specific planner implementation

SensorConfig: Sensor (sensor_cfg_dict)

classCameraConfigstereotypecameraextendsSensorConfig, SpawnableConfigfastsim/unisim/sensors/models/camera.py
FieldTypeRequiredDefaultDescription / Constraints
widthintrequiredImage width in pixels
heightintrequiredImage height in pixels
data_typeslist[str]requiredList of data types to collect
rgb / depth / semantic_segmentation / instance_segmentation / normals
clip_rangelist[2]optionalDepth clip range [near, far] in meters
attach_toAttachToConfigoptionalAttach configuration (mount to an entity or link)
look_atLookAtConfigoptionalLook-at configuration (point toward a target or coordinate)
conventionenumoptionalworldCoordinate convention
world / opengl / ros
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: single_gripper_arm_robot
      asset_path: assets://robots/ur5_with_gripper.usd
      ee_link_name: tool0
      use_planner: true
      arm_actuator_name: arm
      gripper_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]