Apple researchers trained a humanoid robot only in 1,000 computer-generated homes. In six real buildings it had never seen or mapped, the robot finished single tasks 91% of the time across 360 trials.
The system is called HALO. It is described in the paper “Perceptive Humanoid Motion from Simulation” on arXiv, submitted on November 4, 2026. The eight authors include Matthias Muller and Vladlen Koltun. The team also posted a HALO project page with demo videos and the full HALO code on GitHub.
This is research, not a product. Apple has not said it plans to sell a robot. Still, the paper shows how far a robot can get on synthetic data alone, and where it still fails.
What HALO can do
The robot takes spoken requests and turns them into actions. The skills it learned include:
- Walking to a named object or person
- Sitting on a chair or sofa
- Sidestepping through a half-open door
- Crouching and crawling under tables
- Pushing a box
- Following a person
HALO can also chain these skills into longer jobs. A request might mean crouching under an obstacle, walking to a target, and then pushing a box.

Why it matters: data that scales with compute
The authors say the main barrier for general humanoid control is a lack of training data. Robots need large sets that link camera images and language to joint commands.
Collecting that data by remote control is slow. The paper says teleoperation and wearable capture cost “at least an hour of human time to produce an hour of data.”
HALO takes another route. It builds its data in 1,000 procedurally generated homes, so the dataset grows with computing power rather than human labor. The project page sums it up: “Trained in homes that don’t exist. Deployed in homes it has never seen.”
The approach is not fully hands-free, though. Humans still write a text prompt for each new task and design its motion keyframes. Some keyframes came from phone videos of a person, motion capture, or hand-edited poses. Scene building, motion generation, filtering and rendering then run without people.
How well it works in the real world
The team tested HALO in six real environments with no prior scans or maps. Each task ran 10 times per environment. Here are the reported single-task results:
| Task | Real-world success rate |
|---|---|
| Crouch | 100% |
| Door sidestep | 93% |
| Go to target | 92% |
| Crawl | 90% |
| Push box | 88% |
| Sit | 85% |
| Average (360 trials) | 91% |
Longer, multi-step jobs are harder. These ran in one real environment, with 10 trials per sequence:
| Task sequence | Success rate |
|---|---|
| Door, then go to target | 100% |
| Crouch, then sit | 60% |
| Crouch, go to target, then push box | 50% (5 of 10) |
| Average | 70% |
In simulation, the multi-task average was 69% across 50 environments. So each extra step adds a new chance to fail. A three-step job worked only half the time in the real test.
The hardware: a Mac mini on a robot’s back
HALO runs on a Unitree G1 humanoid with 29 joints. The team added a head-mounted camera and a rear enclosure that holds a Mac mini with an M4 Pro chip and 64GB of memory.
The Mac mini handles the two heavy AI models. The robot’s built-in Nvidia Jetson Orin NX computer runs the fast motion tracker and a depth model. A downward-facing RealSense camera feeds depth data to the tracker.
The default planning model runs locally on the Mac mini. That lets the robot work without an internet connection. Users can optionally send requests to frontier cloud models through their APIs for stronger reasoning.
Technical details: three layers of control
HALO splits control into three layers that run at different speeds.
Orchestrator
This top layer is a vision language model. By default it is Qwen3.6-35B-A3B, run in 4-bit form with the MLX framework. It breaks a spoken request into subtasks about every two seconds. It moves on when a step succeeds and retries when one fails.
Motion generator
This middle layer looks at the camera image and the current subtask. It uses a frozen Qwen3.5-2B model as an encoder and a small diffusion transformer as a decoder. It outputs a five-second whole-body motion plan and refreshes it about three times per second.
Motion tracker
The bottom layer runs 50 times per second. It follows the plan using depth images, body sensors and the motion plan, and sets targets for all 29 joints. The team trained it in three phases: reinforcement learning experts, then distillation into one student policy, then fine-tuning with depth input.
Training compute
Generating the main training data took 48 hours on 250 Nvidia H100 GPUs, with no human intervention. The motion generator trained on 64 Nvidia B200 GPUs. The tracker’s final training phase used 4 H100 GPUs.
What is in the code release
The GitHub repository covers the whole pipeline. It includes:
- Synthetic data generation using Infinigen scenes and Kimodo motion
- Training code for the motion generator and the tracker
- Deployment in MuJoCo simulation and on a real Unitree G1
- Robot description files and scene assets
The repository points readers to a LICENSE file to review before use. Researchers who own a G1 can, in principle, rebuild the stack.
Limits the researchers admit
The paper lists several weak spots. The robot relies mainly on vision, so it cannot directly sense contact. When an object leaves the camera’s view or gets blocked, contact-heavy tasks get worse. The authors suggest tactile sensing as one fix.
They also note that the tracker does not know the purpose of the plan it follows. The orchestration layer is simple, too. And as noted above, each new task still needs human-written prompts and keyframes.
What remains unclear
Apple has not tied HALO to any product or timeline. The paper also does not run head-to-head performance tests against rival systems. It compares only features and trial counts with earlier work.
The bigger open question is scale. HALO handles six skills today. Whether the same pipeline can add many more tasks without much more human design work is something the paper does not answer.











