GEAR SONIC Header
[![License](https://img.shields.io/badge/License-Apache%202.0-76B900.svg)](LICENSE) [![IsaacLab](https://img.shields.io/badge/IsaacLab-2.3.2-orange.svg)](https://github.com/isaac-sim/IsaacLab/releases/tag/v2.3.2) [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-76B900.svg)](https://nvlabs.github.io/GR00T-WholeBodyControl/) [![Demo](https://img.shields.io/badge/Live%20Demo-GEAR--SONIC-blue.svg)](https://nvlabs.github.io/GEAR-SONIC/demo.html)
--- # GR00T-WholeBodyControl This is the codebase for the **GR00T Whole-Body Control (WBC)** projects. It hosts model checkpoints and scripts for training, evaluating, and deploying advanced whole-body controllers for humanoid robots. We currently support: - **Decoupled WBC**: the decoupled controller (RL for lower body, and IK for upper body) used in NVIDIA GR00T [N1.5](https://research.nvidia.com/labs/gear/gr00t-n1_5/) and [N1.6](https://research.nvidia.com/labs/gear/gr00t-n1_6/) models; - **GEAR-SONIC Series**: our latest iteration of generalist humanoid whole-body controllers (see our [whitepaper](https://nvlabs.github.io/GEAR-SONIC/)); - **MotionBricks**: a real-time latent generative model for interactive motion control in animation and robotics (see the [project page](https://nvlabs.github.io/motionbricks/)). ## News - **[2026-07-23]** **SONIC v1.1 checkpoint** โ€” released a robot-heading-normalized SONIC controller trained with wrist-pose augmentation for 3-point teleoperation and SONIC-backed VLA execution. See the [Model Card](#model-card) and [Download Models](https://nvlabs.github.io/GR00T-WholeBodyControl/getting_started/download_models.html#sonic-v11-checkpoint). - **[06/16]** **Isaac Teleop Setup (CloudXR / DeviceIO, in-process)** โ€” added bring-up docs for the in-process CloudXR path via `isaacteleop[cloudxr]`, with no separate publisher container. See [Isaac Teleop Setup](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/isaac_teleop_publisher_setup.html). - **[2026-06-16]** **Low-latency teleoperation checkpoint** โ€” released a SONIC checkpoint with 4-frame SMPL reference lookahead for more responsive whole-body teleoperation. See the [Model Card](#model-card), [Download Models](https://nvlabs.github.io/GR00T-WholeBodyControl/getting_started/download_models.html#low-latency-teleoperation-checkpoint), and [VLA Inference](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/vla_inference.html#low-latency-teleoperation-checkpoint). - **[2026-05-07]** ๐Ÿค– **End-to-end VLA workflow on G1** โ€” collect teleop data, fine-tune Isaac-GR00T N1.7, and deploy with SONIC whole-body control. See [Data Collection](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/data_collection.html), [VLA Workflow](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/vla_workflow.html), and [VLA Inference](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/vla_inference.html). - **[2026-04-27]** ๐Ÿงฉ **MotionBricks preview** โ€” interactive G1 demo, pretrained checkpoints (VQVAE ยท pose ยท root), synthetic training code, and motion-representation docs. See [`motionbricks/`](motionbricks/) and the [project page](https://nvlabs.github.io/motionbricks/). - **[2026-04-14]** ๐ŸŒ **[Live web demo](https://nvlabs.github.io/GEAR-SONIC/demo.html)** โ€” try SONIC interactively in your browser. Features [Kimodo](https://github.com/nv-tlabs/kimodo) text-to-motion generation. - **[2026-04-10]** ๐Ÿš€ Released **SONIC training code and checkpoint** on [HuggingFace](https://huggingface.co/nvidia/GEAR-SONIC). Train from scratch or finetune. **Additional embodiment support** and **VLA data collection pipeline**. See [Training Guide](https://nvlabs.github.io/GR00T-WholeBodyControl/user_guide/training.html). - **[2026-03-24]** ๐Ÿ”ง C++ inference stack update: motor error monitoring, TTS alerts, ZMQ protocol v4, idle-mode readaptation. **ZMQ header size changed to 1280 bytes.** - **[2026-03-16]** ๐Ÿ“ฆ [BONES-SEED](https://huggingface.co/datasets/bones-studio/seed) open-sourced โ€” 142K+ human motions (~288 hours) with G1 MuJoCo trajectories. - **[2026-02-19]** ๐ŸŽ‰ Released GEAR-SONIC: pretrained checkpoints, C++ inference, VR teleoperation, and documentation. - **[2025-11-12]** ๐Ÿ Initial release with Decoupled WBC for GR00T N1.5 and N1.6. ## Table of Contents - [News](#news) - [GEAR-SONIC](#gear-sonic) - [Model Card](#model-card) - [VR Whole-Body Teleoperation](#vr-whole-body-teleoperation) - [Kinematic Planner](#kinematic-planner) - [SONIC Training](#sonic-training) - [TODOs](#todos) - [What's Included](#whats-included) - [Setup](#setup) - [Documentation](#documentation) - [Citation](#citation) - [License](#license) - [Support](#support) - [MotionBricks](#motionbricks) - [Decoupled WBC](#decoupled-wbc) ## GEAR-SONIC

Website | Model | Paper | Docs

SONIC is a humanoid behavior foundation model 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 โ€” from walking and crawling to teleoperation and multi-modal control. It is designed to generalize beyond the motions it has seen during training and to serve as a foundation for higher-level planning and interaction. In this repo, we release SONIC's training code, deployment framework, model checkpoints, and teleoperation stack for data collection. ## Model Card SONIC provides three released Unitree G1 checkpoints. Choose the model based on its reference representation and intended deployment. ### Available Models | Model | Hugging Face location | SMPL reference input | Intended use and comments | |---|---|---|---| | **Default SONIC (original release)** | Top-level `model_encoder.onnx`, `model_decoder.onnx`, and `observation_config.yaml`; training checkpoint at `sonic_release/last.pt` | 10 future frames at 20 ms spacing, approximately 200 ms of reference lookahead | Default general-purpose SONIC controller for motion tracking, planning, teleoperation, and compatibility with existing deployments. G1 and teleoperation future-reference observations use `step5`. | | **Low-latency teleoperation** | [`low_latency/`](https://huggingface.co/nvidia/GEAR-SONIC/tree/main/low_latency) | 4 future frames at 20 ms spacing, approximately 80 ms of reference lookahead | Intended for more responsive whole-body teleoperation and VLA execution. G1 and teleoperation future-reference observations use `step1`. Use its encoder, decoder, and observation config together. | | **SONIC v1.1** | [`sonic_v1_1/`](https://huggingface.co/nvidia/GEAR-SONIC/tree/main/sonic_v1_1) | 10 future frames at 20 ms spacing, approximately 200 ms of reference lookahead | Uses robot-heading-normalized target orientation and was trained with wrist-pose augmentation. Intended for heading-stable 3-point teleoperation and SONIC-backed VLA policies that use this controller. G1 and teleoperation future-reference observations use `step5`; this is not the low-latency model. | All three models use the SONIC universal-token controller, produce 64-dimensional latent motion tokens, run the controller at 50 Hz, and support SMPL pose, G1 motion reference, and VR 3-point inputs. Deployment uses C++ and TensorRT; the PyTorch checkpoints support Isaac Lab evaluation and continued training. The lookahead values describe the reference horizon presented to the controller. They are **not** measurements of total end-to-end teleoperation latency, which also includes sensing, networking, preprocessing, and inference. Model weights are covered by the [NVIDIA Open Model License](LICENSE). ### Released Files | Model | Deployment files | PyTorch and configuration files | |---|---|---| | Default SONIC | `model_encoder.onnx`, `model_decoder.onnx`, `observation_config.yaml` | `sonic_release/last.pt`, `sonic_release/config.yaml` | | Low-latency teleoperation | `low_latency/model_encoder.onnx`, `low_latency/model_decoder.onnx`, `low_latency/observation_config.yaml` | `low_latency/last.pt`, `low_latency/config.yaml`, `low_latency/model_config.yaml` | | SONIC v1.1 | `sonic_v1_1/model_encoder.onnx`, `sonic_v1_1/model_decoder.onnx`, `sonic_v1_1/observation_config.yaml` | `sonic_v1_1/last.pt`, `sonic_v1_1/config.yaml`, `sonic_v1_1/model_config.yaml` | ### Usage Download the default model and planner: ```bash python download_from_hf.py ``` Download the low-latency teleoperation model and planner: ```bash python download_from_hf.py --low-latency ``` Download SONIC v1.1 and the planner: ```bash python download_from_hf.py --sonic-v1-1 ``` Run the default C++ deployment stack: ```bash cd gear_sonic_deploy ./deploy.sh --input-type zmq_manager real ``` Run the low-latency C++ deployment stack: ```bash cd gear_sonic_deploy ./deploy.sh \ --cp policy/low_latency/model \ --obs-config policy/low_latency/observation_config.yaml \ --input-type zmq_manager \ real ``` Run the SONIC v1.1 C++ deployment stack: ```bash cd gear_sonic_deploy ./deploy.sh \ --cp policy/sonic_v1_1/model \ --obs-config policy/sonic_v1_1/observation_config.yaml \ --input-type zmq_manager \ real ``` Run the default Python VLA launcher, which orchestrates the C++ controller and Python inference client: ```bash python gear_sonic/scripts/launch_inference.py \ --camera-host 192.168.123.164 \ --prompt "pick up the cup" ``` For the low-latency model, add the matching deployment files: ```bash 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 SONIC v1.1, use `policy/sonic_v1_1/model` and its matching `policy/sonic_v1_1/observation_config.yaml` in the same launcher flags. See [Downloading Model Checkpoints](docs/source/getting_started/download_models.md#sonic-v11-checkpoint) for Python checkpoint evaluation and additional deployment options. Test in simulation before using the checkpoint on a physical robot. ## VR Whole-Body Teleoperation SONIC supports real-time whole-body teleoperation via PICO VR headset, enabling natural human-to-robot motion transfer for data collection and interactive control.
SONIC Low Latency whole-body teleoperation and ground pickup

SONIC Low Latency: 3-point VR teleoperation with whole-body tracking and a successful ground pickup.

This repo can also drive the headset over Isaac Teleop / CloudXR by launching `gear_sonic/scripts/pico_manager_thread_server.py --input-source isaac-teleop`. The streamer hosts the CloudXR runtime in-process via `isaacteleop[cloudxr]` โ€” no separate publisher container required. That path is currently documented and supported only for **G1 with a Thor backpack**. The Isaac Teleop bring-up steps are documented in [`docs/source/tutorials/isaac_teleop_publisher_setup.md`](docs/source/tutorials/isaac_teleop_publisher_setup.md).
Walking Running
Sideways Movement Kneeling
Getting Up Jumping
Bimanual Manipulation Object Hand-off
## Kinematic Planner 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
## SONIC Training SONIC can be trained from scratch on the [Bones-SEED](https://huggingface.co/datasets/bones-studio/seed) motion capture dataset (142K+ motions, ~288 hours, Unitree G1 retargeted), or finetuned from the released checkpoint on [Hugging Face](https://huggingface.co/nvidia/GEAR-SONIC). ### Quick start ```bash # Install training dependencies (Isaac Lab must be installed separately โ€” see docs) pip install -e "gear_sonic/[training]" # Download checkpoint + SMPL data from Hugging Face pip install huggingface_hub python download_from_hf.py --training # Download Bones-SEED G1 CSVs from huggingface.co/datasets/bones-studio/seed, then convert and filter python gear_sonic/data_process/convert_soma_csv_to_motion_lib.py \ --input /path/to/bones_seed/g1/csv/ \ --output data/motion_lib_bones_seed/robot --fps 30 --fps_source 120 --individual --num_workers 16 python gear_sonic/data_process/filter_and_copy_bones_data.py \ --source data/motion_lib_bones_seed/robot --dest data/motion_lib_bones_seed/robot_filtered # Finetune from released checkpoint (64+ GPUs recommended) accelerate launch --num_processes=8 gear_sonic/train_agent_trl.py \ +exp=manager/universal_token/all_modes/sonic_release \ +checkpoint=sonic_release/last.pt \ num_envs=4096 headless=True \ ++manager_env.commands.motion.motion_lib_cfg.motion_file=data/motion_lib_bones_seed/robot_filtered \ ++manager_env.commands.motion.motion_lib_cfg.smpl_motion_file=data/smpl_filtered ``` For the full guide including multi-node training, evaluation, ONNX export, and SOMA encoder setup: ๐Ÿ“– [Installation (Training)](https://nvlabs.github.io/GR00T-WholeBodyControl/getting_started/installation_training.html) | [Training Guide](https://nvlabs.github.io/GR00T-WholeBodyControl/user_guide/training.html) ## TODOs - [x] Release pretrained SONIC policy checkpoints - [x] Open source C++ inference stack - [x] Setup documentation - [x] Open source teleoperation stack and demonstration scripts - [x] Release training scripts and recipes for motion imitation and fine-tuning - [x] Open source large-scale data collection workflows and fine-tuning VLA scripts. - [x] Publish additional preprocessed large-scale human motion datasets ## What's Included This release includes: - **`gear_sonic_deploy`**: C++ inference stack for deploying SONIC policies on real hardware - **`gear_sonic`**: Full SONIC training stack โ€” PPO training, data processing pipeline, and configuration system for training on Bones-SEED and custom motion datasets - **`motionbricks`**: Preview release of the MotionBricks real-time latent generative stack โ€” interactive G1 demo, pretrained checkpoints, synthetic training code, and motion-representation docs ### Setup > **Git LFS required.** This repo contains large binary assets (meshes, ONNX > models). Without Git LFS, you will get small pointer files instead of actual > data, causing silent failures. Install Git LFS first if you don't have it: > `sudo apt install git-lfs && git lfs install` > > MotionBricks pretrained checkpoints are skipped by default to avoid an extra > ~2.2 GiB download during normal monorepo setup. MotionBricks GIFs and meshes > still download normally. Fetch the checkpoints explicitly if you plan to run > the MotionBricks demo. ```bash git clone https://github.com/NVlabs/GR00T-WholeBodyControl.git cd GR00T-WholeBodyControl git lfs pull # Optional: fetch MotionBricks pretrained checkpoints. git lfs pull --include="motionbricks/out/**" --exclude="" # Verify your environment python check_environment.py ``` ### Which environment do I need? | I want to... | Environment | How to install | |---|---|---| | **Train / finetune SONIC** | Isaac Lab's Python env | [Install Isaac Lab](https://isaac-sim.github.io/IsaacLab/main/source/setup/installation/index.html), then `pip install -e "gear_sonic/[training]"` | | **Run MuJoCo simulation** | `.venv_sim` (auto-created) | `bash install_scripts/install_mujoco_sim.sh` | | **VR teleoperation** | `.venv_teleop` (auto-created) | `bash install_scripts/install_pico.sh` | | **Collect data** | `.venv_data_collection` (auto-created) | `bash install_scripts/install_data_collection.sh` | | **Deploy on real robot** | C++ build | See [deployment docs](https://nvlabs.github.io/GR00T-WholeBodyControl/getting_started/installation_deploy.html) | Each use case has its own lightweight environment. The install scripts use `uv` and create isolated venvs automatically โ€” you don't need to manage them manually. Training is the only one that requires Isaac Lab (installed separately). ## Documentation ๐Ÿ“š **[Full Documentation](https://nvlabs.github.io/GR00T-WholeBodyControl/)** ### Getting Started - [Installation Guide](https://nvlabs.github.io/GR00T-WholeBodyControl/getting_started/installation_deploy.html) - [Quick Start](https://nvlabs.github.io/GR00T-WholeBodyControl/getting_started/quickstart.html) - [VR Teleoperation Setup](https://nvlabs.github.io/GR00T-WholeBodyControl/getting_started/vr_teleop_setup.html) ### Tutorials - [Keyboard Control](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/keyboard.html) - [Gamepad Control](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/gamepad.html) - [ZMQ Communication](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/zmq.html) - [ZMQ Manager / PICO VR](https://nvlabs.github.io/GR00T-WholeBodyControl/tutorials/vr_wholebody_teleop.html) ### Training - [Installation (Training)](https://nvlabs.github.io/GR00T-WholeBodyControl/getting_started/installation_training.html) - [Training Guide](https://nvlabs.github.io/GR00T-WholeBodyControl/user_guide/training.html) - [Training Data](https://nvlabs.github.io/GR00T-WholeBodyControl/user_guide/training_data.html) ### Best Practices - [Teleoperation](https://nvlabs.github.io/GR00T-WholeBodyControl/user_guide/teleoperation.html) --- ## Citation If you use GEAR-SONIC in your research, please cite: ```bibtex @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} } ``` --- ## License This project uses dual licensing: - **Source Code**: Licensed under Apache License 2.0 - applies to all code, scripts, and software components in this repository - **Model Weights**: Licensed under NVIDIA Open Model License - applies to all trained model checkpoints and weights See [LICENSE](LICENSE) for the complete dual-license text. Please review both licenses before using this project. The NVIDIA Open Model License permits commercial use with attribution and requires compliance with NVIDIA's Trustworthy AI terms. All required legal documents, including the Apache 2.0 license, 3rd-party attributions, and DCO language, are consolidated in the /legal folder of this repository. --- ## Support For questions and issues, please contact the GEAR WBC team at [gear-wbc@nvidia.com](mailto:gear-wbc@nvidia.com) to provide feedback! ## MotionBricks

Project page | Subproject README

MotionBricks is a real-time generative framework that transforms interactive motion control for animation and robotics. It combines a large-scale latent backbone with intuitive "smart primitives" to deliver high-quality, zero-shot motion synthesis at 15,000 FPS โ€” complementing the tracking-based GEAR-SONIC controllers in this repo. This preview release ships an interactive G1 demo (keyboard-driven, MuJoCo viewer), pretrained checkpoints (VQVAE ยท pose ยท root), a synthetic training pipeline, and motion-representation docs. Its pretrained checkpoints are opt-in for monorepo clones; run `git lfs pull --include="motionbricks/out/**" --exclude=""` from the repo root before using the demo. A full release โ€” fully embedded in the GEAR-SONIC pipeline โ€” is targeted for approximately one month out. See [`motionbricks/README.md`](motionbricks/README.md) for setup, demo, and training instructions. ## Decoupled WBC For the Decoupled WBC used in GR00T N1.5 and N1.6 models, please refer to the [Decoupled WBC documentation](docs/source/references/decoupled_wbc.md). ## Acknowledgments We would like to acknowledge the following projects from which parts of the code in this repo are derived from: - [Beyond Mimic](https://github.com/HybridRobotics/whole_body_tracking) - [Isaac Lab](https://github.com/isaac-sim/IsaacLab)