Quickstart#
Train and watch your first whole-body tracking policy on the bundled sample clips. Every step works in the Studio (browser) or on the command line — pick a tab once and the others follow.
Before you start
wbc-mjlab installed (Installation) —
uv run wbc-mjlab-list-envslistsWbc-G1and friendsAn NVIDIA GPU for training (CPU is enough for steps 1–2)
About 15 minutes for a smoke run; a real policy trains for hours
1. Open the pipeline#
uv run wbc-mjlab-studio
Open the printed link. The top bar shows the pipeline: Robot → Data → Preset → Train → Play. G1 is selected.
Everything below runs from the repository root.
2. Look at the sample clips#
The 10 bundled G1 clips (walk, run, dance, fall and get up, flips …) are CSV files. Training reads them as they are — resampling, velocities and body poses are computed on the GPU while it runs — so there is nothing to convert.
Data → pick samples → click a clip to watch it; the Clip tab lists anything suspicious (feet in the floor, joint limits).
Nothing to do: data/g1/samples/ holds the CSVs training reads.
3. Train#
Wbc-G1 is the default stack (which task?). A smoke run of 1000
iterations shows the loop works; a full run is about 30k.
Preset → Wbc-G1 → Train → set iterations to 1k → Launch. The job shows progress, curves and a link to TensorBoard.
uv run wbc-mjlab-train --task Wbc-G1 --dataset samples --agent.max-iterations 1000
Check: logs/rsl_rl/wbc_g1/<run>/ fills with model_*.pt checkpoints and
params/policy.onnx + params/config.yaml.
4. Watch the policy#
Play → pick the run → Load policy. Each env shows its reference as a ghost; pick a clip in the bar above the 3D view, push the robot with p.
uv run wbc-mjlab-play --task Wbc-G1 --dataset samples --viewer viser
Open the viser link; the sidebar shows the clip, reference alignment and the adaptive sampling bins.
After 1000 iterations the robot follows the easy clips roughly; flips and get-ups need the full run.
What you have now#
logs/rsl_rl/wbc_g1/<run>/
model_*.pt checkpoints (continue with --agent.resume True)
params/policy.onnx the policy, ready for a robot runtime
params/config.yaml observation layout, joints, PD gains for that runtime
Next steps#
Import and check a motion library.
Iterations, resume, many GPUs, logs.
ZEST, state estimation, end-effector command, rough terrain.
Hand policy.onnx + config.yaml to a deploy runtime.