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 |
git clone https://github.com/Motphys/MotrixLab
cd MotrixLab
git lfs pulluv sync --all-packagesThis installs all workspace packages together with PyTorch, the default training backend used by the built-in FastSAC. Third-party frameworks such as SKRL and RSLRL are optional extras.
uv run 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:
uv run 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):
uv run 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:
uv run 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 |
uv run 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











