Simulation Backends

UniLab currently uses two backend names in registry/config paths: 1-mujoco and 2-motrix. User commands select them with --sim, which routes to the matching task owner YAML; do not switch a run by overriding training.sim_backend alone.

Runtime Prerequisites

  • Install Motrix support with uv sync --extra motrix.

  • Any run using --sim mujoco, MuJoCo playback, or MuJoCo-only debugging tool still requires a working MuJoCo runtime.

  • On macOS, the package CLI routes Motrix interactive playback through mxpython when needed. Direct script calls that open the native Motrix renderer should use uv run mxpython.

Select A Backend

uv run train --algo ppo --task go1_joystick_flat --sim mujoco
uv run train --algo ppo --task go1_joystick_flat --sim motrix

Owner YAML locations:

  • PPO / APPO: conf/{ppo,appo}/task/<task>/<backend>.yaml

  • Off-policy: conf/offpolicy/task/<algo>/<task>/<backend>.yaml

The selected owner YAML sets training.sim_backend as an identity field.

Playback Differences

  • --render-mode auto exports play_video.mp4 on MuJoCo paths.

  • --render-mode auto opens Motrix native interactive rendering on Motrix paths.

  • --render-mode record records without opening an interactive window.

  • --render-mode none disables playback.

uv run eval --algo ppo --task go1_joystick_flat --sim mujoco --load-run -1
uv run eval --algo ppo --task go1_joystick_flat --sim motrix --load-run -1 \
  --render-mode record

Support Evidence

Task/backend/entrypoint support is evidence-graded. See Support Matrix for the support matrix entry and links to the generated source data.