Train robot policies in simulation, then deploy them to real hardware.
Microduck locomotion policies trained with MotrixLab, rendered in MotrixRender — watch the HD video.
- What is MotrixLab?
- Key Features
- Quick Start
- Task Environments
- Built-in Robot Models
- What's Inside
- Contributing
- Contact
MotrixLab is an open-source reinforcement learning framework for robot training, built on the high-performance MotrixSim physics engine. Define an environment once, train it with thousands of parallel environment instances using SKRL, RSL-RL, or the built-in FastSAC, and deploy the resulting policy to MuJoCo or Unitree hardware — all through a single command-line interface.
- Unified Interface: Provides a concise and unified reinforcement learning training and evaluation interface
- Multi-framework Support: Supports SKRL (JAX/PyTorch), RSLRL (PyTorch), and the built-in FastSAC implementation
- Rich Environments: Includes various robot simulation environments such as basic control, locomotion, and manipulation tasks
- Sim-to-Real Deployment: The same policy code deploys via the deploy CLI — Sim2Sim to MuJoCo, Sim2Real to real hardware
- High-precision, High-performance Simulation: Built on MotrixSim, a high-precision, high-performance physics engine
- Visual Training: Supports real-time rendering and training process visualization
| Requirement | Notes |
|---|---|
| Python 3.10.x | The workspace pins ==3.10.* |
| uv | Python project and dependency manager — installation guide |
| Git LFS | Robot meshes, motion data, and videos are tracked by LFS |
| OS | Linux x86_64 or Windows x86_64; the JAX training backend is Linux-only |
| GPU | NVIDIA (CUDA) or AMD (ROCm) — the matching wheels are selected automatically by sh install.sh |
git clone https://github.com/Motphys/MotrixLab
cd MotrixLab
git lfs pullLinux:
sh install.shWindows (PowerShell):
.\install.ps1
# if blocked by the execution policy:
powershell -ExecutionPolicy Bypass -File install.ps1This auto-detects your GPU vendor (NVIDIA → CUDA, AMD → ROCm) and installs all workspace packages with the matching PyTorch wheels. Use --gpu cuda|rocm to override detection and --skrl-jax / --rslrl to add training backends — see sh install.sh --help.
Activate the installed environment (Windows PowerShell: .venv\Scripts\Activate.ps1):
source .venv/bin/activate
python scripts/train.py task=microduck-walk-flat/motrix.fastsac play=trueWhile training, the built-in dashboard shows live run progress, episode statistics, throughput, rewards, and system health:
Training runs thousands of parallel environment instances; when it finishes, the trained policy is loaded and played in the viewer automatically. Checkpoints and TensorBoard logs are saved under runs/microduck-walk-flat/; watch the curves with:
tensorboard --logdir runs/microduck-walk-flatTraining finishes in minutes: mean return and episode length typically converge after about 4,000 iterations:
Replay the latest trained policy without retraining (for example, after stopping training early with Ctrl+C):
python scripts/play.py env=microduck-walk-flatA trained microduck policy replayed in the viewer:
microduck-walk.mp4
MotrixLab ships 50+ built-in simulation environments spanning basic control, quadruped and humanoid locomotion, whole-body motion tracking, and manipulation. The main categories:
python scripts/view.py env=go2-walk-roughSee the full environment gallery for all registered environments and their supported training algorithms.
Seven reusable robot models are registered out of the box and can be combined into any scene or task:
| Screenshot | Registry name | Type | DoF |
|---|---|---|---|
![]() |
anymal_c |
Quadruped | 12 |
![]() |
dex-evt |
Humanoid | 23 |
![]() |
g1-29dof |
Humanoid | 29 |
![]() |
go1 |
Quadruped | 12 |
![]() |
go2 |
Quadruped | 12 |
![]() |
k1 |
Humanoid | 22 |
![]() |
microduck |
Humanoid | 14 |
python scripts/view.py robot=go2See Supported Robots for configuration details and how to add your own model.
MotrixLab is a uv workspace of nine packages:
| Package | PyPI name | Description |
|---|---|---|
| motrix_deploy | motrix-deploy |
Framework-independent artifact, backend, policy, control-loop, registry, and CLI |
| motrix_deploy_mujoco | motrix-deploy-mujoco |
MuJoCo deployment backend plugin |
| motrix_deploy_unitree | motrix-deploy-unitree |
Unitree SDK2 DDS hardware backend plugin |
| motrix_deploy_tasks | motrix-deploy-tasks |
Concrete versioned deployment tasks and executable bootstrap |
| motrix_env_core | motrix-env-core |
Environment base classes, configuration, registry, scene construction, NumPy runtime, and rendering. It contains no built-in tasks or robot assets |
| motrix_env_motrixsim | motrix-env-motrixsim |
Live MotrixSim backend, renderer, and torch frontend |
| motrix_env_mujoco | motrix-env-mujoco |
Compile-only MuJoCo scene backend |
| motrix_envs | motrix-envs |
Built-in environments, models, data, and environment-to-deployment-profile compilers |
| motrix_rl | motrix-rl |
RL-framework integration built against motrix-env-core, with SKRL, RSLRL, and FastSAC support |
Contributions are welcome! See CONTRIBUTING.md for the development environment setup, branch and commit conventions, and the configured checks (prek, ruff, dprint, mypy).
Have questions or suggestions? Feel free to contact us through:
- GitHub Issues: Submit Issues
- Discussions: Join Discussion











