{ "name": "SONIC-K1", "version": "v0.1.0", "description": "SONIC universal-token whole-body motion tracking policy for the Booster K1 (22 DoF), trained from scratch", "author": "Kyrylo Kolesnichenko, ATR Lab", "license_note": "Code: Apache-2.0 (upstream GR00T-WholeBodyControl); K1 assets: BSD-3 (booster_assets). Weights: trained on BONES-SEED under its academic, non-commercial license.", "attribution": "Training data includes Motion Data by Bones Studio (https://bones.studio/). Use of the underlying dataset is subject to the BONES Motion Capture Dataset License Agreement.", "files": { "config.yaml": { "bytes": 28023, "md5": "3e51dcc10ea94854ddc161090b2ee616", "sha256": "1e068f71d2fa0ea066762cce2d0375c2b4772d9f7b4d3a89cde169db0ac7a7c2" }, "k1_plant.json": { "bytes": 5538, "md5": "d4d4562f66673028bddb02f84bd4a739", "sha256": "1bddc0b3d9e8254340a5dfc188400656819cd1a2f88ad7122d08f50abfa54f52" }, "sonic_k1_it50000_actor.pt": { "bytes": 100333329, "md5": "ff40d03521249d789c10eccb28bca1dd", "sha256": "fab3b535982260aa81d2f0519173cd9afe592fd99979fe60e8c9105c79a88228" }, "onnx/model_decoder.onnx": { "bytes": 39008693, "md5": "ebe1df9ad71cbebb63ed958907a09d96", "sha256": "6c16503afe0df63277e3d2d8fb0892be19855d86be52a575c4d19a3440ac43be" }, "onnx/model_encoder.onnx": { "bytes": 48239910, "md5": "efc630e27a77f6f4f5b36351d2273e62", "sha256": "5c3782176e990591eee1635bfd28b16c4732a5684e64a3d5151f5446776c9bcd" }, "onnx/observation_config.yaml": { "bytes": 4354, "md5": "c99f77da1f1c43293eb9c3c53067d775", "sha256": "3d56d9a7a778e54eddace58f6988e7e71ed2aa8d1354a80d6d0061537c433a84" }, "onnx/policy_g1.onnx": { "bytes": 54794351, "md5": "1b07136202767b5245d684f7c1b97edd", "sha256": "23b8f24afa02adb1975aa870c6645ff5ab004a4bb1b0a6f4284ffb3fe0a00809" }, "onnx/policy_teleop.onnx": { "bytes": 52887019, "md5": "7469c97adb85f1f85a9dbaaf8b247ce1", "sha256": "20e6fdd96d41a84a09d2af52413f60bc8ec6f299a115220798d77dea37ac03d6" } }, "source_checkpoint": { "file": "model_step_050000.pt (full training state, not released)", "md5": "719470dfbf8393df7490972d4d134323" }, "software": { "isaaclab": "0.54.4", "isaacsim": "5.1.0", "torch": "2.7.0+cu128", "trl": "0.28.0", "accelerate": "1.15.0", "hydra-core": "1.3.2", "mujoco": "3.13.0", "onnx": "1.22.0", "onnxruntime": "1.20.1", "numpy": "1.26.4", "onnx_opset": 13 }, "training": { "exp_config": "manager/universal_token/all_modes/sonic_k1", "seed": 0, "iterations": 50000, "clips": 9991, "clip_source": "BONES-SEED retargeted to K1 with UMR; subset of 62,427 feasibility-tagged, QA-passing clips", "num_envs": "16,384 (8,192 for it2100-2450)", "motions_loaded": "all 9,991 from it9451 (override_num_motions_to_load); 1,024-motion resampling window before", "gpu": "1x NVIDIA H100 NVL", "gpu_hours_wall": 135.4, "gpu_hours_note": "sum of per-iteration times over 5 log segments; includes periods with other users' jobs on the same GPU (~103 h at the unshared 7.4 s/it)", "policy_params": 25078496, "critic_params": 10751996, "architecture": "encoders g1/teleop/smpl (MLP) -> FSQ (2 tokens x 32 dims, 32 levels) -> decoder g1_dyn (MLP); smpl encoder untrained (no SMPL data)" }, "control": { "policy_hz": 50, "physics_dt_s": 0.005, "decimation": 4, "action_clip": 20.0, "joint_target": "default_joint_pos + action_scale * action", "pd": "explicit, kp/kd/effort per joint in k1_plant.json" }, "eval": { "isaac_im_eval": { "protocol": "upstream im_eval; MPJPE over successful clips (SONIC/PHC convention), all_clips also given; 10 s clips, 2,000 envs, encoders mixed g1/teleop as in the stock eval; official = tracking/eval terminations incl. foot_pos_xyz 0.2 m; nofoot = foot rule off; paper = height 0.25 m + orientation 1 rad only", "unseen_1985": { "official": { "success_rate_pct": 93.1, "progress_rate_pct": 95.4, "mpjpe_l_mm": 14.65, "mpjpe_pa_mm": 10.79, "mpjpe_g_mm": 84.86, "all_clips": { "mpjpe_l_mm": 15.52, "mpjpe_pa_mm": 11.38, "mpjpe_g_mm": 85.79 }, "failed_clips": 137 }, "nofoot": { "success_rate_pct": 97.9, "progress_rate_pct": 98.5, "mpjpe_l_mm": 15.5, "mpjpe_pa_mm": 11.31, "mpjpe_g_mm": 97.35, "all_clips": { "mpjpe_l_mm": 15.96, "mpjpe_pa_mm": 11.59, "mpjpe_g_mm": 98.35 }, "failed_clips": 41 }, "paper": { "success_rate_pct": 98.7, "progress_rate_pct": 99.1, "mpjpe_l_mm": 15.78, "mpjpe_pa_mm": 11.49, "mpjpe_g_mm": 98.22, "all_clips": { "mpjpe_l_mm": 16.07, "mpjpe_pa_mm": 11.65, "mpjpe_g_mm": 99.3 }, "failed_clips": 26 } }, "seen_2000": { "official": { "success_rate_pct": 98.5, "progress_rate_pct": 98.8, "mpjpe_l_mm": 15.17, "mpjpe_pa_mm": 11.18, "mpjpe_g_mm": 82.64, "all_clips": { "mpjpe_l_mm": 15.18, "mpjpe_pa_mm": 11.19, "mpjpe_g_mm": 83.17 }, "failed_clips": 30 }, "nofoot": { "success_rate_pct": 98.8, "progress_rate_pct": 99.0, "mpjpe_l_mm": 15.24, "mpjpe_pa_mm": 11.21, "mpjpe_g_mm": 84.48, "all_clips": { "mpjpe_l_mm": 15.26, "mpjpe_pa_mm": 11.23, "mpjpe_g_mm": 84.54 }, "failed_clips": 25 }, "paper": { "success_rate_pct": 98.8, "progress_rate_pct": 99.0, "mpjpe_l_mm": 15.27, "mpjpe_pa_mm": 11.24, "mpjpe_g_mm": 84.57, "all_clips": { "mpjpe_l_mm": 15.29, "mpjpe_pa_mm": 11.25, "mpjpe_g_mm": 84.61 }, "failed_clips": 24 } }, "held_out_split": "configs/eval_split.json, frozen 2026-10-13 before training; 0 clips shared with training" }, "mujoco_sim2sim": { "protocol": "gear_sonic/scripts/eval_k1_mujoco.py; MPJPE over all clips (paper_successful_clips also given); g1 encoder, 5 ms physics, explicit PD, 10 s clips", "unseen_200": { "success_paper_pct": 99.0, "success_official_like_pct": 90.5, "mpjpe_l_mm": 16.16, "mpjpe_pa_mm": 12.32, "mpjpe_g_mm": 124.5, "paper_successful_clips": { "mpjpe_l_mm": 15.93, "mpjpe_pa_mm": 12.2, "mpjpe_g_mm": 124.67 }, "joint_jerk_over_reference": 0.866, "parity_max_abs_action": 0.01189124584197998 }, "seen_200": { "success_paper_pct": 96.0, "success_official_like_pct": 93.5, "mpjpe_l_mm": 16.3, "mpjpe_pa_mm": 11.92, "mpjpe_g_mm": 82.87, "paper_successful_clips": { "mpjpe_l_mm": 14.94, "mpjpe_pa_mm": 11.24, "mpjpe_g_mm": 80.95 }, "joint_jerk_over_reference": 1.239, "parity_max_abs_action": 0.02002173662185669 }, "unseen_200_onnx_driven": { "success_paper_pct": 99.0, "success_official_like_pct": 90.5, "mpjpe_l_mm": 16.19, "mpjpe_pa_mm": 12.33, "mpjpe_g_mm": 124.73, "paper_successful_clips": { "mpjpe_l_mm": 15.96, "mpjpe_pa_mm": 12.21, "mpjpe_g_mm": 124.9 }, "joint_jerk_over_reference": 0.866 } }, "onnx_parity": { "note": "max |a_onnx - a_pt| per clip: 392/400 clips <= 1.4e-5 (median 1.1e-5); 8/400 clips show one 8e-3..2e-2 step from a single FSQ level flip at a rounding boundary; closed-loop results identical" }, "headline_sonic_rule": { "rule": "SONIC paper success rule: fail if root or any end-effector height deviates > 0.25 m from the reference. MuJoCo, it50000, --no-terminate; metrics over successful clips; MPJPE-L over K1's 12 links.", "bones_unseen_1985_10s": { "sonic": 97.4, "no_fall": 98.4, "official_like": 91.9, "phc_0.5m": 86.6, "mpjpe_l_mm": 15.4, "mpjpe_pa_mm": 11.8, "e_vel": 2.65, "e_acc": 0.98 }, "phuma_1758": { "sonic": 93.6, "no_fall": 97.3, "official_like": 85.0, "phc_0.5m": 91.7, "mpjpe_l_mm": 22.4, "mpjpe_pa_mm": 15.9, "e_vel": 3.15, "e_acc": 0.86, "note": "2,000 HF-release motions stratified over 15 sources, G1->K1 robot retarget, 1,758 pass QA" }, "100style_200x20s": { "sonic": 99.0, "no_fall": 98.5, "official_like": 77.0, "phc_0.5m": 51.5, "mpjpe_l_mm": 22.5, "mpjpe_pa_mm": 15.8, "e_vel": 4.32, "e_acc": 1.36 }, "lafan1_all_10s_windows_1390": { "sonic": 70.6, "no_fall": 75.5, "official_like": 45.0, "phc_0.5m": 39.9, "mpjpe_l_mm": 31.9, "locomotion_subset_792_sonic": 91.9 }, "lafan1_full_clips_65": { "sonic": 18.5, "no_fall": 27.7, "official_like": 0.0, "phc_0.5m": 0.0 } }, "mujoco_full_sets": { "unseen_1985_10s": { "no_fall": 98.4, "official_like": 91.9 }, "unseen_1985_full": { "no_fall": 98.3, "official_like": 91.8 }, "seen_2000_10s": { "no_fall": 98.6, "official_like": 97.2 }, "seen_2000_full": { "no_fall": 98.5, "official_like": 97.0 } }, "isaac_extra": { "teleop_encoder_unseen_10s": { "official": 93.4, "nofoot": 97.8, "paper": 98.7, "mpjpe_l_mm": 15.1 }, "unseen_full_length": { "official": 93.4, "nofoot": 97.5, "paper": 98.6, "mpjpe_l_mm": 15.0 } }, "hardware_like_mujoco": { "condition": "Booster deploy torque caps + 20 ms action latency + PD x0.8", "unseen_1985_no_fall": 95.9, "official_like": 87.7, "mpjpe_l_mm": 19.3 }, "robustness_mujoco_200_unseen_no_fall": { "baseline": 99.0, "dense_push_1_2s_3x": 97.0, "dense_push_4x": 91.0, "friction_0.4": 98.5, "friction_0.2": 94.0, "motor_strength_0.7": 99.0, "pd_x0.6": 99.0, "pd_x1.4": 98.0, "payload_2kg": 98.5, "obs_noise_x3": 99.0, "latency_20ms": 98.5, "latency_40ms": 56.0, "booster_torque_caps": 99.0 }, "baselines_reported_not_rerun": { "source": "SONIC paper (Luo et al., arXiv 2511.07820); Unitree G1; not rerun by us", "phuma": { "SONIC": 97.2, "BeyondMimic": 73.8, "Any2Track": 78.5 }, "sonic_test_content": { "SONIC": 98.5, "BeyondMimic": 82.0, "Any2Track": 61.6 } } }, "checkpoint_iteration": 50000, "links": { "project_page": "https://kyry.me/sonic-k1/", "code": "https://github.com/Kyk0/sonic-k1", "weights": "https://huggingface.co/Kyry10/sonic-k1", "k1_usd": "https://huggingface.co/datasets/Kyry10/booster-k1-usd", "training_setup_guide": "https://github.com/Kyk0/isaaclab-h100" }, "code": { "release": { "repo": "https://github.com/Kyk0/sonic-k1", "tag": "v0.1.0", "commit": "ad0850502f9fa86f0641d3ad4e95ade809f053a8", "upstream": "NVlabs/GR00T-WholeBodyControl v1.1", "upstream_commit": "a0732b642c0333077e127a2f56ab0014c196bca4", "note": "Clean release tree: K1 support plus evaluation (eval_k1_mujoco.py), player (play_k1.py) and deploy tools. The released evaluation numbers were produced with this code." }, "training": { "repo": "private development fork of NVlabs/GR00T-WholeBodyControl (branch k1, not published)", "commit_at_start": "8bb110f (2026-10-14 02:18, run started 2026-10-14 05:33)", "commits_during_run": [ "cef74b7 im_eval: map G1 body-subset names to K1 bodies (eval only)", "ef59a8e im_eval: fix _body_idx recursion (eval only)" ], "working_tree": "uncommitted k1.py / k1_openloop.py edits, later saved as 1d19d8d (optional ideal-PD debug switch, default off; training used the default implicit PD)", "equivalence": "The release K1 robot config, rewards and experiment config are the training ones. The release actor + config reproduce 92.5% official success in Isaac on 200 unseen clips (vs 93.1% on all 1,985)." } }, "sample_motions": { "path": "examples/k1/motions/*.npz", "source": "100STYLE (Mason, Starke, Komura 2022), CC BY 4.0, https://doi.org/10.5281/zenodo.8127870" } }