YAML: simulationclassSimulationConfig

Simulation

Declares the simulation backend and runtime parameters. stereotype selects the engine; UniSimFactory instantiates the corresponding UniSim subclass.

sourcefastsim/configs/simulation_cfg.py

Top-level Fields5

FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequiredSimulation backend identifier (isaaclab / mujoco / pybullet); must be registered in the UniSim registry
Run fastsim show-registry to list available values; custom backends require scan_project
dtfloatrequiredPhysics timestep in seconds; typical value 0.0166667 (60 Hz)
Must be > 0
initialize_stepsintoptional60Initialization steps after reset to let the physics world stabilize before the task begins
Must be >= 0
num_envsintoptional1Number of parallel environments (GPU parallel simulation); 1 = single environment
Must be >= 1
env_spacingfloatoptional2.5Spacing between parallel environments in meters; effective when num_envs > 1
Must be > 0

IsaacLab Backend (stereotype: isaaclab)

When stereotype is isaaclab, the config class is IsaacLabConfig, extending the common fields with the following parameters and three nested config objects.

classIsaacLabConfigstereotypeisaaclabfastsim/simulators/isaaclab/isaaclab_config.py
FieldTypeRequiredDefaultDescription / Constraints
devicestringrequiredcuda:0Compute device
cpu or cuda:<index> (e.g. cuda:0, cuda:1)
render_intervalintrequired1Render one frame every N physics steps
Must be >= 1
gravitytuple[3]required(0.0, 0.0, -9.81)Gravity vector (x, y, z) in m/s²
physics_prim_pathstringrequired/physicsScenePhysics scene prim path
Must start with /
enable_scene_query_supportboolrequiredfalseEnable scene query support (ray casting, etc.)
use_fabricboolrequiredtrueUse Fabric data interface for accelerated data access
create_stage_in_memoryboolrequiredtrueCreate USD Stage in memory to speed up startup
launch_configLaunchConfigrequiredIsaac Sim AppLauncher startup parameters; see LaunchConfig
physics_configPhysicsConfigrequiredPhysX physics engine parameters; see PhysicsConfig
render_configRenderConfigrequiredRendering parameters; see RenderConfig
classLaunchConfigfastsim/simulators/isaaclab/isaaclab_config.py
FieldTypeRequiredDefaultDescription / Constraints
headlessboolrequiredfalseHeadless mode, no GUI window; suitable for server/training environments
livestreamintrequired0Remote livestream mode
0=disabled / 1=public network / 2=local network
enable_camerasboolrequiredtrueWhether to enable camera rendering pipeline; must be true when collecting image data
devicestringrequiredcudaCompute device
cpu or cuda / cuda:<index>
classPhysicsConfigfastsim/simulators/isaaclab/isaaclab_config.py
FieldTypeRequiredDefaultDescription / Constraints
solver_typeintrequired1Physics solver type
0=PGS (projected Gauss-Seidel) / 1=TGS (temporal Gauss-Seidel, more accurate)
min_position_iteration_countintrequired1Min position constraint iterations per step
max_position_iteration_countintrequired255Max position constraint iterations per step
min_velocity_iteration_countintrequired0Min velocity constraint iterations per step
max_velocity_iteration_countintrequired255Max velocity constraint iterations per step
enable_ccdboolrequiredfalseContinuous collision detection (CCD); prevents fast objects from tunneling, but reduces performance
enable_stabilizationboolrequiredfalsePhysics stabilization to reduce micro-jitter
enable_enhanced_determinismboolrequiredfalseEnhanced determinism mode; trades performance for better reproducibility
bounce_threshold_velocityfloatrequired0.5Bounce threshold velocity
friction_offset_thresholdfloatrequired0.04Friction offset threshold
friction_correlation_distancefloatrequired0.025Friction correlation distance
gpu_max_rigid_contact_countintrequired8388608GPU max rigid contact count (2²³)
gpu_max_rigid_patch_countintrequired163840GPU max rigid patch count (5×2¹⁵)
gpu_found_lost_pairs_capacityintrequired2097152GPU found/lost pairs capacity (2²¹)
gpu_found_lost_aggregate_pairs_capacityintrequired33554432GPU found/lost aggregate pairs capacity (2²⁵)
gpu_total_aggregate_pairs_capacityintrequired2097152GPU total aggregate pairs capacity (2²¹)
gpu_collision_stack_sizeintrequired67108864GPU collision stack size (2²⁶)
gpu_heap_capacityintrequired67108864GPU heap capacity (2²⁶)
gpu_temp_buffer_capacityintrequired16777216GPU temp buffer capacity (2²⁴)
gpu_max_num_partitionsintrequired8GPU max number of partitions
gpu_max_soft_body_contactsintrequired1048576GPU max soft body contacts (2²⁰)
gpu_max_particle_contactsintrequired1048576GPU max particle contacts (2²⁰)
solve_articulation_contact_lastboolrequiredfalseWhether to solve articulation contacts last
classRenderConfigfastsim/simulators/isaaclab/isaaclab_config.py
FieldTypeRequiredDefaultDescription / Constraints
enable_translucencyboolrequiredfalseEnable translucency rendering
enable_reflectionsboolrequiredfalseEnable reflections
enable_global_illuminationboolrequiredtrueEnable global illumination
antialiasing_modestringrequiredDLSSAntialiasing mode
Off / FXAA / DLSS / TAA / DLAA
enable_dlssgboolrequiredfalseEnable DLSS frame generation
enable_dl_denoiserboolrequiredtrueEnable deep learning denoiser
dlss_modeintrequired0DLSS quality mode
0 / 1 / 2 / 3
enable_direct_lightingboolrequiredtrueEnable direct lighting
samples_per_pixelintrequired1Samples per pixel
enable_shadowsboolrequiredtrueEnable shadows
enable_ambient_occlusionboolrequiredtrueEnable ambient occlusion
dome_light_upper_lower_strategyintrequired0Dome light upper/lower strategy
0 / 3 / 4
carb_settingsdict[str, Any]optional{}Custom Carbonite render settings
rendering_modestringoptionalperformanceRendering quality mode
performance / balanced / quality

MuJoCo Backend (stereotype: mujoco)

When stereotype is mujoco, the config class is MuJoCoConfig. Uses the MuJoCo physics engine; runs on CPU only.

classMuJoCoConfigstereotypemujocofastsim/simulators/mujoco/mujoco_config.py
FieldTypeRequiredDefaultDescription / Constraints
headlessboolrequiredfalseHeadless mode, no GUI viewer
render_widthintrequired640Render width in pixels
render_heightintrequired480Render height in pixels
gravitylist[3]required[0, 0, -9.81]Gravity vector [x, y, z] in m/s²

PyBullet Backend (stereotype: pybullet)

When stereotype is pybullet, the config class is PyBulletConfig. Uses PyBullet for CPU-only simulation, ideal for lightweight testing and OMPL planning.

classPyBulletConfigstereotypepybulletfastsim/simulators/pybullet/pybullet_config.py
FieldTypeRequiredDefaultDescription / Constraints
headlessboolrequiredtrueHeadless mode, no GUI viewer (PyBullet defaults to headless)
gravitylist[3]required[0, 0, -9.81]Gravity vector [x, y, z] in m/s²
render_widthintrequired640Render width in pixels
render_heightintrequired480Render height in pixels

Example

simulation blockYAML
simulation:
  stereotype: isaaclab
  dt: 0.0166667
  initialize_steps: 60
  device: cuda:0
  render_interval: 1
  gravity: [0.0, 0.0, -9.81]
  create_stage_in_memory: true
  launch_config:
    headless: false
    livestream: 0
    enable_cameras: true
    device: cuda
  physics_config:
    solver_type: 1
    min_position_iteration_count: 1
    max_position_iteration_count: 255
    enable_ccd: false
    enable_stabilization: false
  render_config:
    antialiasing_mode: DLSS
    enable_shadows: true
    rendering_mode: performance

Common Errors

Error messageCauseFix
Simulation config is requiredMissing simulation block or stereotype field not providedAdd a complete simulation config block with a valid stereotype
Invalid simulator stereotypestereotype value not found in the UniSim registryRun fastsim show-registry to see available backends; custom backends need scan_project enabled