GEAR-SONIC: Supersizing Motion Tracking for Natural Humanoid Whole-Body Control
77
50 commits
3 linked in READMEs
updated Aug 26, 2026
SONIC (Supersizing Motion Tracking) is a humanoid behavior foundation model developed by NVIDIA that gives robots a core set of motor skills learned from large-scale human motion data. Rather than building separate controllers for predefined motions, SONIC uses motion tracking as a scalable training task, enabling a single unified policy to produce natural, whole-body movement and support a wide range of behaviors.
SONIC supports real-time whole-body teleoperation via PICO VR headset, enabling natural human-to-robot motion transfer for data collection and interactive control.
| Walking | Running |
![]() | ![]() |
| Sideways Movement | Kneeling |
![]() | ![]() |
| Getting Up | Jumping |
![]() | ![]() |
| Bimanual Manipulation | Object Hand-off |
![]() | ![]() |
SONIC includes a kinematic planner for real-time locomotion generation โ choose a movement style, steer with keyboard/gamepad, and adjust speed and height on the fly.
| In-the-Wild Navigation | |
![]() | |
| Run | Happy |
![]() | ![]() |
| Stealth | Injured |
![]() | ![]() |
| Kneeling | Hand Crawling |
![]() | ![]() |
| Elbow Crawling | Boxing |
![]() | ![]() |
๐ See the Quick Start Guide for step-by-step instructions on:
Key Resources:
The repository provides three Unitree G1 controller variants. Each ONNX encoder must be used with the decoder and observation config from the same variant.
| Model | Location | SMPL reference input | Intended use and comments |
|---|---|---|---|
| Default SONIC (original release) | Top-level deployment files; PyTorch checkpoint under sonic_release/ | 10 frames at 20 ms spacing, approximately 200 ms | General-purpose motion tracking, planning, and teleoperation. G1 and teleoperation references use step5. |
| Low-latency teleoperation | low_latency/ | 4 frames at 20 ms spacing, approximately 80 ms | Reduced-reference-lookahead controller for responsive teleoperation and VLA execution. G1 and teleoperation references use step1. |
| SONIC v1.1 | sonic_v1_1/ | 10 frames at 20 ms spacing, approximately 200 ms | Robot-heading-normalized controller trained with wrist-pose augmentation for heading-stable whole-body teleoperation and SONIC-backed VLA policies. G1 and teleoperation references use step5; this is not the low-latency model. |
All variants use 64-dimensional universal motion tokens and a 29-DoF action decoder. Inference is powered by TensorRT and runs on both desktop and Jetson hardware.
| Checkpoint | File | Description |
|---|---|---|
| Policy encoder | model_encoder.onnx | Encodes motion reference into latent |
| Policy decoder | model_decoder.onnx | Decodes latent into joint actions |
| Kinematic planner | planner_sonic.onnx | Real-time locomotion style planner |
| Low-latency policy | low_latency/model_encoder.onnx, low_latency/model_decoder.onnx, low_latency/observation_config.yaml | Reduced-lookahead G1 controller variant |
| Low-latency PyTorch checkpoint | low_latency/last.pt | Training checkpoint and config for the low-latency variant |
| SONIC v1.1 policy | sonic_v1_1/model_encoder.onnx, sonic_v1_1/model_decoder.onnx, sonic_v1_1/observation_config.yaml | Robot-heading-normalized G1 controller variant |
| SONIC v1.1 PyTorch checkpoint | sonic_v1_1/last.pt | Training checkpoint and configs for SONIC v1.1 |
The root config.json
is the canonical release manifest for all variants and shared artifacts. Include
it when downloading selected files directly; Hugging Face uses this query file
for repository-level download statistics.
Quick download (requires pip install huggingface_hub):
from huggingface_hub import snapshot_download
snapshot_download(repo_id="nvidia/GEAR-SONIC", local_dir="gear_sonic_deploy")
Or use the download script from the GitHub repo:
python download_from_hf.py # policy + planner (default)
python download_from_hf.py --no-planner # policy only
python download_from_hf.py --low-latency # low-latency policy + planner
python download_from_hf.py --sonic-v1-1 # SONIC v1.1 policy + planner
See the Download Models guide for full instructions.
The sonic_v1_1/ variant uses robot-heading-normalized target orientation
and a 10-frame SMPL/wrist reference horizon. It was trained with wrist-pose
augmentation and is intended for whole-body teleoperation and SONIC-backed VLA
policies trained against this controller.
git clone https://github.com/NVlabs/GR00T-WholeBodyControl.git
cd GR00T-WholeBodyControl
pip install huggingface_hub
python download_from_hf.py --sonic-v1-1
cd gear_sonic_deploy
./deploy.sh \
--cp policy/sonic_v1_1/model \
--obs-config policy/sonic_v1_1/observation_config.yaml \
--motor-kp-scale 4,10=1.5 \
--motor-kd-scale 4,10=1.5 \
sim
This is the tested v1.1 deployment tuning. Hardware indices 4 and 10 are
the left and right ankle-pitch motors; increasing their gains improves
whole-body stability and observed wrist tracking. The tuning is opt-in and
does not alter other checkpoints.
For the Python VLA launcher:
python gear_sonic/scripts/launch_inference.py \
--deploy-checkpoint policy/sonic_v1_1/model \
--deploy-obs-config policy/sonic_v1_1/observation_config.yaml \
--deploy-motor-kp-scale 4,10=1.5 \
--deploy-motor-kd-scale 4,10=1.5 \
--camera-host 192.168.123.164 \
--prompt "pick up the cup"
The released SONIC training recipes also enable corrected adaptive sampling: failures are attributed to the motion cursor tracked before environment reset. Legacy checkpoints still load their policy and optimizer state, while old incompatible adaptive-sampling counters are discarded once.
The low-latency SONIC variant is stored under low_latency/ and does not
replace the default top-level policy. To run it with the C++ deployment stack:
git clone https://github.com/NVlabs/GR00T-WholeBodyControl.git
cd GR00T-WholeBodyControl
pip install huggingface_hub
python download_from_hf.py --low-latency
Simulation:
cd gear_sonic_deploy
./deploy.sh \
--cp policy/low_latency/model \
--obs-config policy/low_latency/observation_config.yaml \
sim
Real robot VLA or teleoperation:
cd gear_sonic_deploy
./deploy.sh \
--cp policy/low_latency/model \
--obs-config policy/low_latency/observation_config.yaml \
--input-type zmq_manager \
real
deploy.sh expects --cp to be the shared model prefix and appends
_encoder.onnx and _decoder.onnx internally. For the full VLA deployment
flow, see the VLA Inference guide.
The Python VLA launcher can start the same low-latency C++ deployment pane and run the Python VLA client, keyboard publisher, and optional data exporter:
python gear_sonic/scripts/launch_inference.py \
--deploy-checkpoint policy/low_latency/model \
--deploy-obs-config policy/low_latency/observation_config.yaml \
--camera-host 192.168.123.164 \
--prompt "pick up the cup"
For Isaac Lab evaluation or rendering from the released PyTorch checkpoint:
python download_from_hf.py --training --low-latency
python download_from_hf.py --sample
python gear_sonic/eval_agent_trl.py \
+checkpoint=low_latency/last.pt \
+headless=False \
++num_envs=1 \
++manager_env.observations.policy.enable_corruption=False \
++manager_env.observations.tokenizer.enable_corruption=False \
"++manager_env.commands.motion.motion_lib_cfg.motion_file=sample_data/robot_filtered" \
"++manager_env.commands.motion.motion_lib_cfg.smpl_motion_file=sample_data/smpl_filtered"
๐ Full Documentation
GR00T-WholeBodyControl/
โโโ gear_sonic_deploy/ # C++ inference stack for deployment
โโโ gear_sonic/ # Teleoperation and data collection tools
โโโ decoupled_wbc/ # Decoupled WBC (GR00T N1.5/N1.6)
โโโ docs/ # Documentation source
โโโ media/ # Videos and images
This repository is part of NVIDIA's GR00T (Generalist Robot 00 Technology) initiative:
If you use GEAR-SONIC in your research, please cite:
@article{luo2025sonic,
title={SONIC: Supersizing Motion Tracking for Natural Humanoid Whole-Body Control},
author={Luo, Zhengyi and Yuan, Ye and Wang, Tingwu and Li, Chenran and Chen, Sirui and Casta\~neda, Fernando and Cao, Zi-Ang and Li, Jiefeng and Minor, David and Ben, Qingwei and Da, Xingye and Ding, Runyu and Hogg, Cyrus and Song, Lina and Lim, Edy and Jeong, Eugene and He, Tairan and Xue, Haoru and Xiao, Wenli and Wang, Zi and Yuen, Simon and Kautz, Jan and Chang, Yan and Iqbal, Umar and Fan, Linxi and Zhu, Yuke},
journal={arXiv preprint arXiv:2511.07820},
year={2025}
}
This project uses dual licensing:
Key points of the NVIDIA Open Model License:
See LICENSE for complete terms.
This work builds upon and acknowledges:
For questions about this model card or responsible AI considerations, contact: gear-wbc@nvidia.com
GEAR-SONIC: Supersizing Motion Tracking for Natural Humanoid Whole-Body Control
77
50 commits
3 linked in READMEs
updated Aug 26, 2026
SONIC (Supersizing Motion Tracking) is a humanoid behavior foundation model developed by NVIDIA that gives robots a core set of motor skills learned from large-scale human motion data. Rather than building separate controllers for predefined motions, SONIC uses motion tracking as a scalable training task, enabling a single unified policy to produce natural, whole-body movement and support a wide range of behaviors.
SONIC supports real-time whole-body teleoperation via PICO VR headset, enabling natural human-to-robot motion transfer for data collection and interactive control.
| Walking | Running |
![]() | ![]() |
| Sideways Movement | Kneeling |
![]() | ![]() |
| Getting Up | Jumping |
![]() | ![]() |
| Bimanual Manipulation | Object Hand-off |
![]() | ![]() |
SONIC includes a kinematic planner for real-time locomotion generation โ choose a movement style, steer with keyboard/gamepad, and adjust speed and height on the fly.
| In-the-Wild Navigation | |
![]() | |
| Run | Happy |
![]() | ![]() |
| Stealth | Injured |
![]() | ![]() |
| Kneeling | Hand Crawling |
![]() | ![]() |
| Elbow Crawling | Boxing |
![]() | ![]() |
๐ See the Quick Start Guide for step-by-step instructions on:
Key Resources:
The repository provides three Unitree G1 controller variants. Each ONNX encoder must be used with the decoder and observation config from the same variant.
| Model | Location | SMPL reference input | Intended use and comments |
|---|---|---|---|
| Default SONIC (original release) | Top-level deployment files; PyTorch checkpoint under sonic_release/ | 10 frames at 20 ms spacing, approximately 200 ms | General-purpose motion tracking, planning, and teleoperation. G1 and teleoperation references use step5. |
| Low-latency teleoperation | low_latency/ | 4 frames at 20 ms spacing, approximately 80 ms | Reduced-reference-lookahead controller for responsive teleoperation and VLA execution. G1 and teleoperation references use step1. |
| SONIC v1.1 | sonic_v1_1/ | 10 frames at 20 ms spacing, approximately 200 ms | Robot-heading-normalized controller trained with wrist-pose augmentation for heading-stable whole-body teleoperation and SONIC-backed VLA policies. G1 and teleoperation references use step5; this is not the low-latency model. |
All variants use 64-dimensional universal motion tokens and a 29-DoF action decoder. Inference is powered by TensorRT and runs on both desktop and Jetson hardware.
| Checkpoint | File | Description |
|---|---|---|
| Policy encoder | model_encoder.onnx | Encodes motion reference into latent |
| Policy decoder | model_decoder.onnx | Decodes latent into joint actions |
| Kinematic planner | planner_sonic.onnx | Real-time locomotion style planner |
| Low-latency policy | low_latency/model_encoder.onnx, low_latency/model_decoder.onnx, low_latency/observation_config.yaml | Reduced-lookahead G1 controller variant |
| Low-latency PyTorch checkpoint | low_latency/last.pt | Training checkpoint and config for the low-latency variant |
| SONIC v1.1 policy | sonic_v1_1/model_encoder.onnx, sonic_v1_1/model_decoder.onnx, sonic_v1_1/observation_config.yaml | Robot-heading-normalized G1 controller variant |
| SONIC v1.1 PyTorch checkpoint | sonic_v1_1/last.pt | Training checkpoint and configs for SONIC v1.1 |
The root config.json
is the canonical release manifest for all variants and shared artifacts. Include
it when downloading selected files directly; Hugging Face uses this query file
for repository-level download statistics.
Quick download (requires pip install huggingface_hub):
from huggingface_hub import snapshot_download
snapshot_download(repo_id="nvidia/GEAR-SONIC", local_dir="gear_sonic_deploy")
Or use the download script from the GitHub repo:
python download_from_hf.py # policy + planner (default)
python download_from_hf.py --no-planner # policy only
python download_from_hf.py --low-latency # low-latency policy + planner
python download_from_hf.py --sonic-v1-1 # SONIC v1.1 policy + planner
See the Download Models guide for full instructions.
The sonic_v1_1/ variant uses robot-heading-normalized target orientation
and a 10-frame SMPL/wrist reference horizon. It was trained with wrist-pose
augmentation and is intended for whole-body teleoperation and SONIC-backed VLA
policies trained against this controller.
git clone https://github.com/NVlabs/GR00T-WholeBodyControl.git
cd GR00T-WholeBodyControl
pip install huggingface_hub
python download_from_hf.py --sonic-v1-1
cd gear_sonic_deploy
./deploy.sh \
--cp policy/sonic_v1_1/model \
--obs-config policy/sonic_v1_1/observation_config.yaml \
--motor-kp-scale 4,10=1.5 \
--motor-kd-scale 4,10=1.5 \
sim
This is the tested v1.1 deployment tuning. Hardware indices 4 and 10 are
the left and right ankle-pitch motors; increasing their gains improves
whole-body stability and observed wrist tracking. The tuning is opt-in and
does not alter other checkpoints.
For the Python VLA launcher:
python gear_sonic/scripts/launch_inference.py \
--deploy-checkpoint policy/sonic_v1_1/model \
--deploy-obs-config policy/sonic_v1_1/observation_config.yaml \
--deploy-motor-kp-scale 4,10=1.5 \
--deploy-motor-kd-scale 4,10=1.5 \
--camera-host 192.168.123.164 \
--prompt "pick up the cup"
The released SONIC training recipes also enable corrected adaptive sampling: failures are attributed to the motion cursor tracked before environment reset. Legacy checkpoints still load their policy and optimizer state, while old incompatible adaptive-sampling counters are discarded once.
The low-latency SONIC variant is stored under low_latency/ and does not
replace the default top-level policy. To run it with the C++ deployment stack:
git clone https://github.com/NVlabs/GR00T-WholeBodyControl.git
cd GR00T-WholeBodyControl
pip install huggingface_hub
python download_from_hf.py --low-latency
Simulation:
cd gear_sonic_deploy
./deploy.sh \
--cp policy/low_latency/model \
--obs-config policy/low_latency/observation_config.yaml \
sim
Real robot VLA or teleoperation:
cd gear_sonic_deploy
./deploy.sh \
--cp policy/low_latency/model \
--obs-config policy/low_latency/observation_config.yaml \
--input-type zmq_manager \
real
deploy.sh expects --cp to be the shared model prefix and appends
_encoder.onnx and _decoder.onnx internally. For the full VLA deployment
flow, see the VLA Inference guide.
The Python VLA launcher can start the same low-latency C++ deployment pane and run the Python VLA client, keyboard publisher, and optional data exporter:
python gear_sonic/scripts/launch_inference.py \
--deploy-checkpoint policy/low_latency/model \
--deploy-obs-config policy/low_latency/observation_config.yaml \
--camera-host 192.168.123.164 \
--prompt "pick up the cup"
For Isaac Lab evaluation or rendering from the released PyTorch checkpoint:
python download_from_hf.py --training --low-latency
python download_from_hf.py --sample
python gear_sonic/eval_agent_trl.py \
+checkpoint=low_latency/last.pt \
+headless=False \
++num_envs=1 \
++manager_env.observations.policy.enable_corruption=False \
++manager_env.observations.tokenizer.enable_corruption=False \
"++manager_env.commands.motion.motion_lib_cfg.motion_file=sample_data/robot_filtered" \
"++manager_env.commands.motion.motion_lib_cfg.smpl_motion_file=sample_data/smpl_filtered"
๐ Full Documentation
GR00T-WholeBodyControl/
โโโ gear_sonic_deploy/ # C++ inference stack for deployment
โโโ gear_sonic/ # Teleoperation and data collection tools
โโโ decoupled_wbc/ # Decoupled WBC (GR00T N1.5/N1.6)
โโโ docs/ # Documentation source
โโโ media/ # Videos and images
This repository is part of NVIDIA's GR00T (Generalist Robot 00 Technology) initiative:
If you use GEAR-SONIC in your research, please cite:
@article{luo2025sonic,
title={SONIC: Supersizing Motion Tracking for Natural Humanoid Whole-Body Control},
author={Luo, Zhengyi and Yuan, Ye and Wang, Tingwu and Li, Chenran and Chen, Sirui and Casta\~neda, Fernando and Cao, Zi-Ang and Li, Jiefeng and Minor, David and Ben, Qingwei and Da, Xingye and Ding, Runyu and Hogg, Cyrus and Song, Lina and Lim, Edy and Jeong, Eugene and He, Tairan and Xue, Haoru and Xiao, Wenli and Wang, Zi and Yuen, Simon and Kautz, Jan and Chang, Yan and Iqbal, Umar and Fan, Linxi and Zhu, Yuke},
journal={arXiv preprint arXiv:2511.07820},
year={2025}
}
This project uses dual licensing:
Key points of the NVIDIA Open Model License:
See LICENSE for complete terms.
This work builds upon and acknowledges:
For questions about this model card or responsible AI considerations, contact: gear-wbc@nvidia.com