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 the runtime workspace packages with the matching PyTorch wheels, required SKRL Torch, and built-in FastSAC. Use --gpu cuda|rocm to override detection; --rslrl adds RSL-RL, while --skrl-jax adds the optional Linux-only SKRL JAX backend. --skrl-torch remains accepted as a compatibility flag because SKRL Torch is already required. Flags combine; 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 twelve packages:
| Package | PyPI name | Description |
|---|---|---|
| motrix_deploy | motrix-deploy |
Framework-independent artifacts, runtime contracts, deployment 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 |
Versioned deployment tasks and executable bootstrap |
| motrix_env_core | motrix-env-core |
Backend-agnostic environment framework, configuration, registry, lifecycle, and rendering |
| 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, robot models, data, and deployment-profile compilers |
| motrix_rl | motrix-rl |
RL control plane, provider/trainer contracts, run/checkpoint handling, and discovery |
| motrix_rl_builtin | motrix-rl-builtin |
Built-in Motrix FastSAC provider |
| motrix_rl_skrl | motrix-rl-skrl |
Required SKRL PPO Torch provider; optional JAX extra |
| motrix_rl_rslrl | motrix-rl-rslrl |
Optional RSL-RL PPO Torch provider |
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











