Downloads · 30 days
43
12% of all-time downloads
wsagi/GR00T-N1.7-G1-SONIC-BonesSeed-V2
GR00T-N1.7-G1-SONIC-BonesSeed-V2 is a robotics model from wsagi. Use it for the robotics task on the model card, and read the license before you ship it in a product. The card lists the license as other.
⚠️ Proof-of-concept — read first This model memorizes 8 prompts (7 motions + stand), augmented to 54 episodes. Generalization to new prompts / new motions is untested (no held-out split). Demo clips run with deviation…
Downloads · 30 days
43
12% of all-time downloads
All-time downloads
351
Public
Parameters
3.1B
6.3 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors6.3 GB · 99%
From the Hugging Face model README
⚠️ Proof-of-concept — read first
This model memorizes 8 prompts (7 motions + stand), augmented to 54 episodes. Generalization to new prompts / new motions is untested (no held-out split). Demo clips run with deviation/fall terminations relaxed (
RELAX=1), so they show prompt → token tracking, not validated balance. It is not a deployable general humanoid VLA. Full caveats in Honest scope & limitations.
What's new in V2 vs V1:
V1's one-shot motions (kick / walk / jump) could not self-start from a standing rest pose —
the memoryless single-frame policy couldn't tell "about to kick" from "just stood up", so they froze
and needed a bootstrap (replay dump tokens to enter the motion). V2 removes the bootstrap: all
three one-shots now self-initiate from cold stand (stochastically — see results). The fix is a
three-part combination recipe (data + loss + idle), not an architecture change:
[1 s of another motion's momentum] ++ [target onset] token sequence is replayed through the
SONIC WBC and re-recorded as (token, ego_rgb, proprio). This covers the deployment
"switch-prompt-from-any-state" distribution with physically-valid transitions. Only rollouts that
actually launched (not frozen/fell) are kept; all *_from_kick sources are dropped (kick's
high foot-lift momentum contaminates the target onset).kick onset that data alone didn't repair."stand" episodes so the policy emits a natural idle instead of drifting
into out-of-distribution motion when no action prompt is active.One prompt-conditioned model.
prompt → GR00T → 64-d FSQ token → SONIC.decode → 29-DoF G1 motion. Skills live in the token space; the pretrained SONIC WBC supplies balance/recovery.
🔗 Code, training & validation scaffolding: vitorcen/LeSONIC
(scripts/gear_sonic_live_demo.sh, scripts/sonic_build_aug_transitions.py,
scripts/sonic_merge_aug_to_lerobot.sh, gear_sonic/data/vla_live_injector.py).
Each clip is the live closed loop: every control step the policy reads the G1's ego camera + proprioception + the prompt, GR00T predicts a 40-step token chunk over ZMQ, and SONIC's WBC decodes it to joint targets. Zero bootstrap — every motion is driven live from step 0.
⚠️ Clips run with
RELAX=1(deviation/fall terminations at threshold 99 = effectively off), so the full motion plays without the normal 1–2 s deviation reset. They demonstrate prompt → token tracking, not fall-resistance (untested under strict termination).
A single persistent live session: the robot stands idle, then the prompt is switched
(squat → jump → dance → walk → lunge → kick → macarena …) by writing a control file — the next
control step picks it up. This is the V2 headline: walk / jump / kick start from the
standing rest pose with no bootstrap injection.
<video controls src="https://huggingface.co/wsagi/GR00T-N1.7-G1-SONIC-BonesSeed-V2/resolve/main/videos/demo_livedemo.mp4"></video>
flow2, all deploy actions chained in one looping sessionThe prompt is switched over time so the G1 chains every deploy action and loops, with no GUI/server restart; the robot walks to a new spot and performs the next action there. Every segment is pure live (zero replay).
<video controls src="https://huggingface.co/wsagi/GR00T-N1.7-G1-SONIC-BonesSeed-V2/resolve/main/videos/demo_flow2.mp4"></video>
Run it:
GR00T_CKPT=<this_checkpoint> bash scripts/gear_sonic_live_demo.sh @flow2.
ℹ️ Measured on the training distribution with no held-out split — these quantify fit, not generalization. Cold-start launch rates are over a small number of trials (n = 2–3) and are stochastic (the memoryless policy has no phase signal, so onset is not deterministic).
Cold-start launch from a standing rest pose — four models, same harness, same RELAX=1, prompt switched at idle (LAUNCH = the motion actually initiates and is not frozen / fallen):
| model | recipe | kick | walk | jump |
|---|---|---|---|---|
| V1 8k baseline | clean 7-motion data | 0 | 0 | 0 (all freeze without bootstrap) |
| onsetw-6000 | onset-loss-weighting only | 2/3 | 1/3 | 0/3 |
| aug-8000 | physical augmentation only | 0/3 | 3/3 | 1/3 |
| V2 (this, aug2-8000) | augmentation + onset-weight + stand | 1–2 / 2 | 2 / 2 | 2 / 2 |
The single-approach models each fix part of the problem (onset-weight → strong kick; augmentation
→ strong walk); the combination is the first model where all three one-shots launch from cold
stand. Honest: still stochastic (~50–100% per motion, not a deterministic 3/3); kick remains
the hardest (most abrupt, highest-amplitude single-leg onset).
squat, lunge, dance, macarena) run pure live and continue
indefinitely, unchanged from V1.stand idle: the 4 stand episodes are enough for the live sentinel idle, but not enough for
a model-driven "stand" prompt (it still drifts) — the live demo injects a captured stand token at
idle rather than routing "stand" through the model.| Base | NVIDIA Isaac GR00T N1.7 (Gr00tN1d7), VLM backbone nvidia/Cosmos-Reason2-2B (frozen), action_horizon 40 |
| Task | prompt + ego-view + proprioception → action.motion_token (64-d FSQ) |
| Embodiment | unitree_g1_sonic (29-DoF G1 + projected gravity) |
| Decoder | GEAR-SONIC UniversalTokenModule.decode("g1_dyn", …) (released WBC checkpoint) |
| Training | DiT action head + projector fine-tuned, Cosmos VLM frozen; bf16, single RTX 4090, 8000 steps; onset-loss-weighting on the first ~12 token positions |
| Data | wsagi/SONIC-VLA-BonesSeed-V2 — 54 episodes / 12 630 frames: 7 base motions + physical WBC-rollout transition augmentation (LAUNCH-filtered, *_from_kick dropped) + 4 stand episodes |
| Weights | bf16, ≈ 6.3 GB, 3 shards (training was bf16; fp32 re-save would only restore mixed-precision noise) |
A proof-of-concept checkpoint, not a general humanoid VLA:
n_obs_steps ≥ 2) or a phase input, which is
future work.unitree_g1_sonic
embodiment config + the live injector + a running GR00T ZMQ server (GR00T and SONIC can't share a
process — transformers version conflict). See the repo for env, ZMQ wire schema, and eval commands.# 1. start the GR00T inference server (Isaac-GR00T venv) pointed at this checkpoint
python -m gr00t.eval.run_gr00t_server \
--model_path <this_checkpoint> --embodiment_tag unitree_g1_sonic --port 5555
# 2. drive SONIC's WBC live in the Isaac viewer (isaaclab env) — zero bootstrap
GR00T_CKPT=<this_checkpoint> bash scripts/gear_sonic_live_demo.sh @flow2 # chained loop
bash scripts/sonic_say.sh kick # switch the running session to any motion at runtime
prompt ─┐
ego cam ─┼─► GR00T N1.7 ──(ZMQ)──► 64-d motion_token ──► SONIC WBC decode ──► 29-DoF G1 (balanced)
proprio ─┘ (one model) (frozen controller)