Why mjlab?#
Reinforcement learning has become a powerful tool for training robot controllers in simulation and transferring them to real hardware. The fidelity of this pipeline hinges on getting simulation details right.
Several frameworks address this. Isaac Lab provides a comprehensive manager-based API for composing RL environments, but requires the Omniverse runtime, which adds installation complexity and startup latency. MuJoCo Playground takes the opposite approach: minimal abstractions and monolithic environment definitions that are easy to hack and quick to prototype, but code duplication across robots and tasks makes multi-task codebases difficult to maintain. There remains a gap for a framework that is both lightweight and built on a proven orchestration API with access to best-in-class physics.
mjlab fills this gap. It adopts Isaac Lab’s manager-based design, where users compose self-contained building blocks for observations, rewards, events, and commands, and pairs it with MuJoCo Warp for GPU-accelerated physics simulation. The result is a framework with minimal dependencies, fast startup, direct access to native MuJoCo model and data structures, and a PyTorch-native interface for policy training.
Design philosophy#
mjlab is designed around three core engineering commitments:
Minimal installation friction. A single
uvx --from mjlab --refresh democommand is enough to run the framework. No heavyweight runtimes, no multi-gigabyte downloads. The dependency footprint is kept intentionally small.Transparent and inspectable physics. mjlab targets a single physics stack, MuJoCo Warp, to prioritize simulation transparency and debuggability. The framework exposes MuJoCo-native
MjModelandMjDatastructures for direct inspection and state access. Cross-simulator portability is a non-goal; mjlab favors precise control and interpretability over backend generality.Tight MuJoCo ecosystem integration. Users work directly with MuJoCo models and conventions. MJCF files, MuJoCo Menagerie assets, and standard MuJoCo tooling all work without translation layers.
Scope#
mjlab provides infrastructure for rigid-body robot learning. It includes depth and raycast sensors for geometric perception. High-fidelity RGB rendering is out of scope. This does not preclude vision-based policies: a common approach is to train privileged policies using full state, then distill into vision-based controllers using external rendering.
The framework is intended to be extended to custom robots, tasks, sensors, and actuators. It ships with reference implementations of velocity tracking, motion imitation, and manipulation tasks.
Comparison#
Framework |
Strengths |
Best for |
|---|---|---|
mjlab |
Lightweight, fast iteration, native MuJoCo, PyTorch |
MuJoCo users who want structured RL environments with GPU acceleration |
Isaac Lab |
Photorealistic rendering, USD pipeline, Omniverse ecosystem |
Projects that need Isaac Sim capabilities |
MuJoCo Playground |
Minimal abstractions, easy to hack, quick prototyping |
One-off experiments and rapid iteration on single tasks |
Newton |
Multi-physics solvers (deformables, VBD), differentiable simulation |
Projects that need solver flexibility beyond rigid-body MuJoCo |