sonic-k1 / release.json
Kyry10's picture
SONIC-K1 it50000 release
ac2761c verified
Raw History Blame Contribute Delete
13.1 kB
{
"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"
}
}