Requirements¶
Read this before installing. The sim-stack version pins are mandatory, not conservative — an unpinned install breaks at the first environment build.
Compatibility matrix¶
| Component | Supported / tested version |
|---|---|
| OS | Linux only |
| Python | ≥ 3.10 (3.10 documented; 3.11 also used by the maintainers) |
| GPU | NVIDIA required; tested on RTX 4070 / Ada sm_89 and RTX 5090 / Blackwell sm_120 |
| NVIDIA driver | CUDA 12.8+ runtime compatibility |
| PyTorch | cu128 wheels — validated with 2.10.0+cu128 and 2.11.0+cu128 |
| mjlab | 1.2.0 (the 1.2 API; 1.3+ not validated) |
| MuJoCo | 3.6.0 |
| mujoco-warp | 3.6.0 |
| warp-lang | 1.12.0 |
safety_sb3 |
v0.4.0 (pinned git dependency) |
| Digit simulation | custom mjlab fork required (imports on stock mjlab, but stepping the sim needs the fork's entity patch) |
"Supported" here means "the version this release was written and tested against." Other versions may work but are not validated; the sim-stack triple (mjlab / MuJoCo / mujoco-warp) in particular must match.
Why the pins are mandatory¶
mjlab 1.2.0 does not pin its own sim stack and sets simulation options (e.g.
ls_parallel) that were removed in MuJoCo Warp 3.9.1. An unpinned
mujoco-warp therefore raises
AttributeError: ls_parallel was removed in MuJoCo Warp 3.9.1 at the first
environment build. mjlab 1.2.0 also imports scipy without declaring it. The
pinned triple above is the validated set.
No PyPI release¶
There is no PyPI package. Install both repositories from git:
robot-safety-sandbox(this package) is installed editable:pip install -e ..safety_sb3is a pinned git dependency inpyproject.toml(safety_sb3 @ git+https://github.com/SafeRoboticsLab/safety-stable-baselines.git@v0.4.0), so a single editable install of this package pulls it in.
The editable install is currently the supported path (the package is not yet published as a wheel). See installation for the full procedure, including the CPU-only import check and the GPU simulation smoke test.
Headless machines¶
Video rendering (the eval --video flag and wandb training videos) needs an
offscreen GL context: export MUJOCO_GL=egl plus moviepy. Without them a run
crashes at the first video interval with an OpenGL-context error. Training
itself does not need a display.