The first open-weights motion tracker for small humanoids

SONIC-K1

One policy that tracks thousands of human motions. NVIDIA's SONIC, ported to the Booster K1 and trained from scratch with under 1% of the original compute.

0%of 1,985 unseen motions tracked, scored with SONIC's own success rule
0%on PHUMA, the SONIC paper's external benchmark (BeyondMimic, as reported by SONIC: 73.8%)
0Kmocap clips in training, one policy for all of them
<0%of SONIC's training compute, about 100 GPU-hours
The recipe

The whole thing is one equation.

0human motionsBones-SEED mocap, retargeted to the K1
×
0robots at oncesimulated K1s in Isaac Lab
×
0training roundsPPO, about 100 GPU-hours
=
1policythat follows motions it has never seen

Trained headless on a shared H100 with our Isaac Lab on H100 guide · the K1 USD is on Hugging Face.

Human → K1

Watch it follow.

Human motion capture on the left, the K1 policy on the right, on motions it never saw during training.

Boxing dodge
Exaggerated walk
Squat
Carrying a crate
Jog with a full turn
Shadow boxing
Benchmarks

How it compares.

Success on motions the policy never trained on, scored with SONIC's own rule, next to the numbers in the SONIC paper. Higher is better.

BenchmarkSONIC-K1
ours · Booster K1
SONIC*
NVIDIA · G1
BeyondMimic*
G1
Any2Track*
G1
PHUMAexternal benchmark, 15 motion sources93.6%97.2%73.8%78.5%
Held-out mocapmotions unseen in training (ours: 1,985 Bones-SEED clips; SONIC: in-house test set)97.4%98.5%82.0%61.6%

100STYLE: 100 ways to walk and run

Zombie, penguin, dinosaur, drunk, superman, proud: 100 walking and running styles from a public dataset it never trained on.

99.0%

All numbers use the SONIC paper's success rule (a rollout fails if the root or a hand/foot height drifts more than 0.25 m from the reference), in MuJoCo. *Reported in the SONIC paper (Luo et al., 2025); we did not rerun these methods. They run on the 1.3 m Unitree G1 with their own data and retargeting, so this is an indicative comparison, not a controlled one.

Robustness

Stays on its feet.

We made things go wrong on purpose and counted how many unseen motions it still finished without falling.

MuJoCo, 200 unseen motions per row (the last row uses all 1,985). Hover a bar for details.

Try it

Run it on your laptop.

No GPU and no Isaac. Four lines, then a MuJoCo window with the K1 following a sample motion, or an mp4 you can share.

GIT_LFS_SKIP_SMUDGE=1 git clone --depth 1 --filter=blob:none --sparse https://github.com/Kyk0/sonic-k1 && cd sonic-k1
git sparse-checkout set gear_sonic/scripts examples/k1 gear_sonic/data/assets/robot_description
pip install mujoco onnxruntime numpy "imageio[ffmpeg]" huggingface_hub
hf download Kyry10/sonic-k1 onnx/policy_g1.onnx k1_plant.json --local-dir checkpoints/sonic-k1

python gear_sonic/scripts/play_k1.py                      # live viewer (macOS: mjpython)
python gear_sonic/scripts/play_k1.py --record demo.mp4

Your own clip: retarget it to the K1 with UMR and pass --motion my_clip.npz. Share it with #SONICK1.

Coming soon

Next for SONIC-K1.

Open weights. Open code.

PyTorch and ONNX policies, configs, the MuJoCo player and the full K1 port of SONIC.

Cite
@misc{kolesnichenko2026sonick1,
  title  = {SONIC-K1: Whole-Body Motion Tracking for the Booster K1 Humanoid},
  author = {Kolesnichenko, Kyrylo},
  year   = {2026},
  howpublished = {\url{https://github.com/Kyk0/sonic-k1}}
}