WBC-MJLab#

Whole-body motion tracking for humanoids on mjlab. Train one policy on a whole motion library, compare methods as tasks on one shared MDP, and deploy the result to a real robot.

Get started

Live demo

WBC Studio

A Unitree G1 policy tracking walking, running, dancing, fighting and get-up clips

Choose your path#

Get started

Install, then train and watch a first policy in about 15 minutes.

Quickstart
How-to guides

Prepare data, pick a task, train, evaluate, deploy, add a robot.

How do I…?
Concepts

The shared MDP, presets and tasks, robots, adaptive sampling.

Overview
Reference

Commands, file formats, the Studio API, MDP terms, Python API.

Command-line reference

The pipeline#

1 · Robot

G1 built in — or add yours from its MJCF / URDF.

Add a robot
2 · Data

Check retargeted clips, convert them to a motion library.

Prepare motion data
3 · Task

Pick a method’s setup, or tune one without code.

Choose a task
4 · Train

Thousands of envs on GPU; resume, many GPUs.

Train a policy
5 · Deploy

policy.onnx + config.yaml for the robot runtime.

Export and deploy

Run it from the command line, or in a browser with WBC Studio — locally or on a remote GPU server.

git clone https://github.com/wbc-mjlab/wbc-mjlab.git && cd wbc-mjlab && make sync
uv run wbc-mjlab-data-to-npz --robot g1 --dataset samples --batch-size 8
uv run wbc-mjlab-train --task Wbc-G1 --dataset samples
git clone https://github.com/wbc-mjlab/wbc-mjlab.git && cd wbc-mjlab && make sync
uv run wbc-mjlab-studio      # open the printed link

Why WBC-MJLab#

Tasks, not forks

ZEST, BeyondMimic-style sampling, state estimation, end-effector command, rough terrain — --task switches on one codebase, with the same CLI and logs for fair comparison.

One shared MDP

Motion command, rewards, observations and terminations written once; robots and methods plug in as configuration.

Multi-motion by design

Train on whole clip libraries with adaptive sampling; one controller for walking, running, fighting, get-ups and flips.

Any humanoid

The G1 reference, extension packages (H2), or a robot added from its model files in minutes.

WBC Studio

Clip QA, conversion, a visual preset editor, training jobs and playback on many envs — in the browser, scriptable over HTTP.

Sim to real

Every run exports an ONNX policy and a robot-agnostic config.yaml for the deploy runtime.

Try it without installing#

Live web demo

A trained policy in the browser (MuJoCo WASM).

https://wbc-mjlab.github.io/wbc-demo/
Google Colab

The bundled checkpoint and sample clips, no local GPU.

https://colab.research.google.com/github/wbc-mjlab/wbc-mjlab/blob/main/notebooks/demo.ipynb
Local demo

uv run wbc-mjlab-demo after install.

Demo & Colab

Citing#

If you use WBC-MJLab in your research, cite the software, mjlab, and the method papers of the tasks you use (Research & citations):

@software{wbc_mjlab2026,
  author  = {Nedelchev, Simeon and Chaplygin, Anton and Kozlov, Lev and Domrachev, Ivan},
  title   = {{WBC-MJLab}: Unified Whole-Body Motion Tracking on mjlab},
  url     = {https://github.com/wbc-mjlab/wbc-mjlab},
  year    = {2026},
  version = {0.0.4},
}

WBC-MJLab is Apache-2.0 licensed. It builds on mjlab and draws on open whole-body tracking work such as whole_body_tracking and GR00T-WholeBodyControl. Several contributors are affiliated with the Institute of Artificial Intelligence, the Robotics Center SBER, Innopolis University and KAIST; we thank them for hosting and hardware.