G1 Kozak — SONIC fine-tuned for the prysiadka

A whole-body motion-tracking policy for the Unitree G1 (29 DoF), fine-tuned from NVIDIA's released SONIC checkpoint to perform the kozak (prysiadka) — the Ukrainian squat-kick, danced in a deep squat with the legs thrown out and recovered in alternation, without the hands touching the floor.

The stock model cannot do it. This one can.

evaluation (90 kozak clips) stock SONIC this policy
against the conditioned reference 0.0333 0.6333
against raw motion capture 0.0444 0.5333

Both reference sets are reported because the conditioned reference is our own preprocessing and the raw capture is not — the result does not depend on it. On 20 clips withheld from training, stock completes 0 of 20 under either reference.

Files

file
kozak_n5_it14500.onnx 59.7 MB · opset 13 · ir_version 7 · 114 nodes

Signature:

input   obs_dict  float32 [1, 1770]
output  action    float32 [1, 29]

29 outputs = the G1's 29 actuated joints. The control loop runs at 50 Hz.

Using it

The observation vector is SONIC's universal-token whole-body tracking observation, unchanged from the base model — this fine-tune touches neither the architecture nor the observation space. Build it exactly as upstream does; see GR00T-WholeBodyControl (pinned commit aa263a8), whose deployment path consumes ONNX policies of this shape.

import onnxruntime as ort
import numpy as np

sess = ort.InferenceSession("kozak_n5_it14500.onnx")
obs = np.zeros((1, 1770), dtype=np.float32)      # build per upstream
action, = sess.run(["action"], {"obs_dict": obs})   # (1, 29)

Because it is a tracking policy, it needs a reference motion to track. It is not a text- or goal-conditioned controller.

How it was trained

Fine-tuned from sonic_release/last.pt with PPO in Isaac Lab 2.3.2 / PhysX:

  • 340-clip mix — 90 kozak clips at 26.5% density, the remainder general motion acting as rehearsal
  • 18,000 iterations at 4,096 parallel environments
  • Architecture, observation space and termination conditions unchanged from the base model
  • Checkpoint selected by 3-point local mean across the whole training curve rather than by peak, because a single checkpoint is not a measurement — the same run swings several points between adjacent saves

References are conditioned before training: floor-aligned to measured stance soles, stance feet planted, and time-warped where inverse dynamics shows the demand exceeding what the joint can supply. Raw kozak capture floats the feet ~2.7 cm and demands 2.03× rated hip-pitch torque on 42.5% of clips; tracking an unreachable target measures the target rather than the robot.

What it costs

Teaching a new skill degrades others. Measured on 500 clips stratified across 250 categories of the base model's own training distribution:

stock this policy
general-capability retention 0.9780 0.8960

That ~8-point loss is not spread evenly — it concentrates in the capability nearest the taught skill. Dance loses ~15 points; object handling loses ~4. If you fine-tune a whole-body tracking policy on a new skill, expect the bill to arrive on whatever the base model already did that most resembles it.

Limitations

  • The trunk lean is saturated, not reproduced. G1's waist_pitch spans only ±29.8°, and the conditioned kozak sits above 95% of that range on 69.8% of frames. "The G1 performs the kozak" means "the closest motion its kinematics admit." The tracking metrics cannot surface this, because the reference they score against carries the same limit.
  • Simulation only. Every number here is PhysX under one evaluation protocol. No hardware deployment has been attempted.
  • It is a tracking policy, so it reproduces a reference; it does not generate the dance.
  • Success is scored under strict termination settings (anchor position, anchor orientation, end-effector position). Looser settings give higher numbers that are not comparable to these.

Licence and attribution

  • Base model: NVIDIA GR00T-WholeBodyControl / SONIC, used under its licence.
  • Training data: BONES-SEED, gated, not redistributed. Motion Data by Bones Studio — https://bones.studio/
  • No raw motion capture is included in or derivable from these weights.

Attribution for the motion data is required by its licence and applies to anything built on this policy.

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading