Why mjlab?#
The Problem#
GPU-accelerated robotics simulation has great tools, but each has tradeoffs:
Isaac Lab: Excellent API and RL abstractions, but heavy installation, slow startup, and Omniverse overhead make rapid iteration painful.
MJX: Fast and lightweight, but JAX’s learning curve
and poor collision scaling (if using the jax
implementation
rather than the warp one) limit adoption.
Newton: Brand new generic simulator supporting multiple solvers (MuJoCo, VBD, etc.) with USD-based format instead of MJCF/XML. Doesn’t yet have the ecosystem and community resources that MuJoCo has built over the years.
Our Solution#
mjlab = Isaac Lab’s API + MuJoCo’s simplicity + GPU acceleration
We took Isaac Lab’s proven manager-based architecture and RL abstractions, then built them directly on MuJoCo Warp. No translation layers, no Omniverse overhead. Just fast, transparent physics.
- Why Not Use Isaac Lab with Newton?
Isaac Lab recently added experimental Newton support, which is great for existing Isaac users who want to try MuJoCo via Newton’s backend.
If you want a comprehensive platform (RL, imitation learning, photorealistic rendering, etc.), use Isaac Lab. If you want a focused tool for RL and sim2real with MuJoCo, use mjlab.
- Why Not Add MuJoCo Warp to Isaac Lab?
This would be fantastic for the ecosystem! NVIDIA’s team is exploring this with their recent experimental Newton integration, which is exciting.
But for us, we wanted to start with something more focused that we could realistically maintain. Isaac Lab is architected around Omniverse/Isaac Sim’s powerful capabilities, which makes sense given everything it supports. Integrating MuJoCo Warp there would mean working within that broader framework and supporting use cases beyond our scope.
Maintaining multi-backend compatibility naturally involves tradeoffs in complexity and dependency management. By starting fresh, we could:
Write a lean codebase optimized specifically for MuJoCo Warp
Keep dependencies minimal and installation fast
Maintain direct access to native mjModel/mjData structures
Iterate quickly without navigating a larger platform’s constraints
Think of mjlab as a love letter to Isaac Lab’s brilliant API design. We’re bringing those manager-based abstractions to researchers who want something smaller and MuJoCo-specific. It’s complementary, not competitive.
Philosophy#
Bare Metal Performance
Direct MuJoCo Warp integration, no translation layers
Native mjModel/mjData structures MuJoCo users know and love
GPU-accelerated with minimal overhead
Developer Experience First
One-line installation:
uvx --from mjlab demoBlazing fast startup
Standard Python debugging (pdb anywhere!)
Fast iteration cycles
Focused Scope
Rigid-body robotics and RL, not trying to do everything
Clean, maintainable codebase over feature bloat
MuJoCo-native implementation, not a generic wrapper
When to Use mjlab#
Use mjlab if you want:
Fast iteration and debugging
Direct MuJoCo physics control
Proven RL abstractions (Isaac Lab-style)
GPU acceleration without heavyweight dependencies
Simple installation and deployment
Use Isaac Lab if you need:
Photorealistic rendering
USD pipeline integration
Omniverse ecosystem features
Use Newton if you need:
Multi-physics solver support (e.g., deformables)
Differentiable simulation
The Bottom Line#
mjlab isn’t trying to replace everything. It’s built for researchers who love MuJoCo’s simplicity and want Isaac Lab’s RL abstractions with GPU acceleration, minus the overhead.