IsaacLab-style manager API, powered by MuJoCo-Warp, for RL and robotics research.
Project description
mjlab
mjlab combines Isaac Lab's proven API with best-in-class MuJoCo physics to provide lightweight, modular abstractions for RL robotics research and sim-to-real deployment.
uvx --from mjlab --with "mujoco-warp @ git+https://github.com/google-deepmind/mujoco_warp" demo
⚠️ BETA PREVIEW
This project is in beta. There might be breaking changes and missing features.
Why mjlab?
- Familiar APIs: If you know Isaac Lab or MuJoCo, you already know mjlab
- Instant Feedback: Fast startup and kernel caching. Drop a breakpoint anywhere and debug immediately
- Massively Parallel: MuJoCo Warp enables efficient GPU-accelerated simulation at scale
- Zero Friction: Pure Python, minimal dependencies. Just
uv runand go
Documentation
- Why mjlab? - When to use mjlab (and when to use Isaac Lab, Newton, etc.)
- Migration Guide - Moving from Isaac Lab
- FAQ & Troubleshooting - Common questions and answers
Quick Start
Option 1: Install from PyPI
Install uv if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh
Run the demo directly:
uvx --from mjlab --with "mujoco-warp @ git+https://github.com/google-deepmind/mujoco_warp" demo
Option 2: Install from Source (Recommended)
Clone the repository:
git clone git@github.com:mujocolab/mjlab.git && cd mjlab
Then either:
-
Run commands directly (recommended for development):
uv run demo
-
Install as editable package (if you need to import mjlab elsewhere):
uv pip install -e . "mujoco-warp @ git+https://github.com/google-deepmind/mujoco_warp"
Training Examples
1. Velocity Tracking
Train a Unitree G1 humanoid to follow velocity commands on flat terrain:
MUJOCO_GL=egl uv run train \
Mjlab-Velocity-Flat-Unitree-G1 \
--env.scene.num-envs 4096
# NOTE: You can evaluate a policy while your training is still
# in progress. This will grab the latest checkpoint from wandb.
uv run play \
--task Mjlab-Velocity-Flat-Unitree-G1-Play \
--wandb-run-path your-org/mjlab/run-id
2. Motion Imitation
Train a Unitree G1 to mimic reference motions. mjlab uses WandB to manage reference motion datasets:
-
Create a registry collection in your WandB workspace named
Motions -
Set your WandB entity:
export WANDB_ENTITY=your-organization-name
-
Process and upload motion files:
MUJOCO_GL=egl uv run scripts/tracking/csv_to_npz.py \ --input-file /path/to/motion.csv \ --output-name motion_name \ --input-fps 30 \ --output-fps 50 \ --render # Optional: generates preview video
Note: For detailed motion preprocessing instructions, see the BeyondMimic documentation.
Train and Play
MUJOCO_GL=egl uv run train \
Mjlab-Tracking-Flat-Unitree-G1 \
--registry-name your-org/motions/motion-name \
--env.scene.num-envs 4096
uv run play \
--task Mjlab-Tracking-Flat-Unitree-G1-Play \
--wandb-run-path your-org/mjlab/run-id
Development
Running Tests
make test
Code Formatting
# Install pre-commit hook.
uvx pre-commit install
# Format manually.
make format
License
mjlab is licensed under the Apache License, Version 2.0.
Third-Party Code
The third_party/ directory contains files from external projects, each with its own license:
- isaaclab/ — Selected files from NVIDIA Isaac Lab (BSD-3-Clause)
When distributing or modifying mjlab, comply with:
- The Apache-2.0 license for mjlab's original code
- The respective licenses in
third_party/for those files
See individual LICENSE files for complete terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mjlab-0.1.0.tar.gz.
File metadata
- Download URL: mjlab-0.1.0.tar.gz
- Upload date:
- Size: 19.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9437e7df4415df85dd6e1a2e5e114639771aaafe71dc1a3ea767607acf28fb82
|
|
| MD5 |
7a812d0dac25cc44ea0a7002c61a5fa0
|
|
| BLAKE2b-256 |
6968b668462d78e9ba96937b43143757d888f7af0fad3d7d8b021682eacf6fa9
|
File details
Details for the file mjlab-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mjlab-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80f7ed4fe038944bebc49b48684dc0d3f45fabadee53c3347277ae3c731b5ede
|
|
| MD5 |
7c42b81360bda53e10212e610304faef
|
|
| BLAKE2b-256 |
20108f4d34211072bb48a41e1fa8265361959e197a21192c695e8ff2ce608d89
|