Downloads · 30 days
13
19% of all-time downloads
weikaih/sonic-x2-smpl64
sonic-x2-smpl64 is a reinforcement learning model from weikaih. Use it for the reinforcement learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
Whole-body motion-tracking policy for the AgiBot X2 Ultra humanoid (29 DOF, head-fixed), finetuned from the released NVIDIA G1 SONIC checkpoint. The bet is data diversity: the full BONES-SEED motion corpus retargeted…
Downloads · 30 days
13
19% of all-time downloads
All-time downloads
70
Public
Repo size
912 MB
Likes
0
Public
Click a slice to open those files.
.pt912 MB · 100%
From the Hugging Face model README
Whole-body motion-tracking policy for the AgiBot X2 Ultra humanoid (29 DOF, head-fixed), finetuned from the released NVIDIA G1 SONIC checkpoint. The bet is data diversity: the full BONES-SEED motion corpus retargeted to X2.
model_step_011300.pt — training step 11,300 (in progress toward 20k).Official-protocol offline eval (128 random clips, terminations on = fail-and-truncate like the official evaluator; root-relative MPJPE over pre-termination frames):
| step | MPJPE (official protocol) | Success rate | notes |
|---|---|---|---|
| 12.8k | 38.3 mm | — | |
| 14k | 38.3 mm (median 35) | 35 % (45/128) |
Official SONIC target: MPJPE < 30 mm, success > 0.98, reached at ~100k steps on 128 GPU. This run is at ~14k steps. The gap is dominated by global root-position tracking during locomotion: 78 % of failures are root drift (robot lags the reference velocity and exceeds the 0.25 m anchor threshold). Success rate by motion type at 14k: idle/gesture 75 %, but walk/run/turn ≈ 0 % — pose accuracy (MPJPE 38 mm) is already decent; holding global position across a full locomotion clip is the hardest part and converges last.
MPJPE-trend on the earlier 8-clip probe (biased toward dynamic clips, terminations off): 59.3 → 56.0 → 50.9 → 48.8 → 47.6 → 46.0 → 44.2 mm (1k → 12.7k), monotonic.
mimic profile, except wrist KD tuned 2.0→1.0 to match
G1's tracking-lag coefficient (deploy must mirror kd=1.0 on the wrists).import torch
sd = torch.load("model_step_011300.pt", map_location="cpu")["policy_state_dict"]
config.yaml / meta.yaml carry the full Hydra config needed to instantiate
the actor-critic.