IsaacLab-style manager API, powered by MuJoCo-Warp, for RL and robotics research.
Project description
mjlab
⚠️ EXPERIMENTAL PREVIEW
This project is in very early experimental stages. APIs, features, and documentation are subject to significant changes. Use at your own risk and expect frequent breaking changes.
Isaac Lab API with MJWarp backend.
Development Guide
Clone mjlab:
git clone git@github.com:mujocolab/mjlab.git && cd mjlab
Using uv
Install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
Once installed, you can verify it works by running:
uv run scripts/list_envs.py
Reinforcement Learning
Velocity training
Train a Unitree G1 to follow velocity commands (headless, large batch):
MUJOCO_GL=egl uv run scripts/velocity/rl/train.py \
Mjlab-Velocity-Flat-G1 \
--env.scene.num-envs 4096
Play the trained policy:
uv run scripts/velocity/rl/play.py \
--task Mjlab-Velocity-Flat-G1-Play
Motion mimicking
Run a pre-trained motion-mimic policy on the G1:
uv run scripts/tracking/rl/play.py \
--task Mjlab-Tracking-Flat-G1-Play \
--wandb-run-path gcbc_researchers/mjlab_alpha/rfdej55h
Train the same motion-mimic policy (headless, large batch):
MUJOCO_GL=egl uv run scripts/tracking/rl/train.py \
Mjlab-Tracking-Flat-G1 \
--registry-name gcbc_researchers/csv_to_npz/lafan_cartwheel \
--env.scene.num-envs 4096
Add a new motion to the WandB registry from a CSV:
MUJOCO_GL=egl uv run scripts/tracking/csv_to_npz.py \
--input-file /path/to/motion.csv \
--output-name side_kick \
--input-fps 30 \
--output-fps 50 \
--render
Debugging
Use dummy agents for quick environment checks (velocity envs only):
uv run scripts/velocity/random_agent.py --task Mjlab-Velocity-Flat-G1
uv run scripts/velocity/zero_agent.py --task Mjlab-Velocity-Flat-G1
Running tests
make test
Code formatting and linting
You can install a pre-commit hook:
uvx pre-commit install
or manually format with:
make format
Troubleshooting
CUDA Compatibility: Not all CUDA versions are supported. Check mujoco_warp#101 for your CUDA version compatibility.
License
This project, mjlab, is licensed under the Apache License, Version 2.0.
Third-Party Code
The third_party/ directory contains selected files from external projects.
Each such subdirectory includes its own original LICENSE file from the upstream source.
These files are used under the terms of their respective licenses.
Currently, third_party/ contains:
- isaaclab/ — Selected files from NVIDIA Isaac Lab,
licensed under the BSD-3-Clause.
When distributing or modifying this project, you must comply with both:
- The Apache-2.0 license of mjlab (applies to all original code in this repository).
- The licenses of any code in
third_party/(applies only to the files from those projects).
See the individual LICENSE files for the 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 Distributions
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.0.0-py3-none-any.whl.
File metadata
- Download URL: mjlab-0.0.0-py3-none-any.whl
- Upload date:
- Size: 19.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42079894208eacd97f78d722412f78bf745852db2170d39210a65172e685588b
|
|
| MD5 |
fa4ef7aa65d3ab82bfd7b59431adb749
|
|
| BLAKE2b-256 |
de33060717bef482efd08ddb225367259ebf43613f874163ca7bf9450569615a
|