apple-aiml-research/ml-halo
Machine LearningResearch code for generating synthetic data, training, and deploying perceptive humanoid motion policies for the Unitree G1.
Overview
HALO is the code release accompanying the paper Perceptive Humanoid Motion from Simulation. It targets researchers who want to reproduce or build on a pipeline that generates humanoid locomotion data in simulation, trains a motion generator and a motion-tracking policy, and deploys the policy on a Unitree G1, in MuJoCo simulation or on the real robot. A language orchestrator turns a request plus an egocentric image into a plan of subtasks.
The repository is organized by stage: datagen/ builds synthetic training data from Infinigen scenes, Kimodo motion and Isaac/MuJoCo rendering; generator/ covers motion-generator training and open-loop evaluation; tracker/ holds the G1 tracking policy with Isaac Lab training and Python/C++ deployment; orchestrator/ runs the planning model; system/ ties the nodes together into closed-loop sim or real-robot runs. Robot and scene assets sit in assets/.
Getting started
Start from a specific subproject rather than expecting a single top-level install. The README routes each workflow to its own instructions:
- Generate training data following the data generation guide.
- Train the generator with the generator README; train the tracker through the tracker training guide, which covers Isaac Lab and the three phases: privileged experts (
PreRL), multi-teacher distillation, and multi-critic fine-tuning (PostRL). - Deploy the tracker alone via the Python deployment guide or the real-time C++ guide.
- Run the closed loop with
run_sim.pyin MuJoCo per the simulation section, or on a G1 withrun_real.pyper the real-robot section.
Setup commands, environments and prerequisites live in those per-folder READMEs; the top-level README does not define a single combined installation.
Constraints
- The pipeline assumes substantial simulation tooling (Isaac Lab, MuJoCo) and a Unitree G1 for the real-robot path.
- No pretrained tracker weights are shipped; the proprio and depth tracker students must be trained with
tracker/training. - The repository notes open TODOs around release scope, the author list and licensing; third-party assets such as the Unitree G1 description keep their original licenses. Check the LICENSE file before use; GitHub reports the license as unrecognized (
NOASSERTION).
HotRepo's take
The project appeared on HotRepo's new-project list for the Python board on 2026-11-06, reaching 108 stars (up 6 within the recorded growth window) and 8 forks, with no GitHub daily rank recorded. The material is a multi-stage research release with per-module documentation, which makes it a reference for reproducing the HALO pipeline rather than a drop-in package; the open TODOs around weights and licensing are the practical limits to weigh first.
Written by AI from the project's README, updated . The project's own docs are the source of truth.