Simulation configuration
The simulation block declares the simulation backend and runtime parameters. The stereotype field decides which engine to use; UniSimFactory instantiates the matching UniSim subclass.
Source: fastsim/configs/simulation_cfg.py (SimulationConfig)
Common fields (all backends)
| Field | Type | Description |
|---|---|---|
stereotype | str | Backend identifier (e.g. isaaclab / mujoco / pybullet); must be registered in UniSim registry |
dt | float | Physics timestep in seconds (must be > 0); typical 0.0166667 (60Hz) |
initialize_steps | int | Init steps after reset to stabilize physics; default 60 |
num_envs | int | Parallel environment count (GPU parallel simulation); default 1 |
env_spacing | float | Spacing between parallel envs in meters; default 2.5 |
List available registered backends:
fastsim show-registry
IsaacLab backend
When stereotype: isaaclab, the config class is IsaacLabConfig (source: fastsim/simulators/isaaclab/isaaclab_config.py). Adds the following on top of common fields:
| Field | Type | Description |
|---|---|---|
device | str | Compute device, cpu or cuda:<index> (e.g. cuda:0) |
render_interval | int | Render one frame every N physics steps; must be >= 1 |
gravity | list[3] | Gravity vector (x, y, z), default [0.0, 0.0, -9.81] |
physics_prim_path | str | Physics scene prim path, default /physicsScene |
enable_scene_query_support | bool | Enable scene queries (raycast etc.) |
use_fabric | bool | Use Fabric data interface for accelerated access |
create_stage_in_memory | bool | Create USD Stage in memory |
launch_config | LaunchConfig | Isaac Sim AppLauncher params (incl. headless, livestream, enable_cameras, device) |
physics_config | PhysicsConfig | PhysX physics engine parameters |
render_config | RenderConfig | Rendering parameters (DLSS, shadows, etc.) |
Configuration example
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: {}
render_config: {}
MuJoCo backend
When stereotype: mujoco, uses the MuJoCo physics engine. Lightweight CPU simulator, fast startup, suitable for quick iteration and debugging.
simulation:
stereotype: mujoco
dt: 0.002
initialize_steps: 60
Source: fastsim/simulators/mujuco/mujuco_config.py
PyBullet backend
When stereotype: pybullet, uses the PyBullet physics engine — open-source CPU simulator with built-in OpenGL rendering.
simulation:
stereotype: pybullet
dt: 0.002
initialize_steps: 60
Source: fastsim/simulators/pybullet/pybullet_config.py
Common errors
| Error | Cause | Fix |
|---|---|---|
Simulation config is required | Config file missing simulation block or stereotype | Add the complete simulation block |
Invalid simulator stereotype | stereotype value not in registry | Run fastsim show-registry to check available values; for custom backends, ensure scan_project is enabled |