Skip to content
←Back to Papers

PAPER DEEP DIVE

HumanoidVLAWhole-Body Control

VioLA: Learning Generalist Humanoid Control Policies from Human Data

VioLA is a generalist humanoid policy that predicts body and hand motion latents instead of joint commands. Frozen SONIC-based encoders map human and robot demonstrations into the same action space, so 93.2% of its 140.6M training frames come from human recordings. On a real Unitree G1 it reaches 100% locomotion and 88.6% manipulation success with no task-specific fine-tuning.

Paper: VioLA: Learning Generalist Humanoid Control Policies from Human Data (arXiv:2610.12435, arxiv.org/abs/2610.12435)
Authors: Mert Albaba, Jens Beißwenger, Anna Manasyan, Daniel Marta, Michael J. Black, Wieland Brendel, Andreas Krause, Georg Martius, Martin Riedmiller (Vesoma, ETH Zürich, MPI-IS, University of Tübingen, ELLIS Institute; Albaba and Beißwenger are co-first authors)
Project page: viola.is.tue.mpg.de  Code status: the abstract states that code and checkpoints will be released, but the project page currently shows only "Code (coming soon)" and no matching repository exists on GitHub, so this entry is recorded as open source promised, code pending.

VioLA overview

Figure 1: VioLA at a glance. Left: human and robot motion encoders write demonstrations into a shared body and hand latent space. Center: the generalist policy predicts motion latents from vision, language and proprioception. Right: frozen robot controllers execute the predictions. Annotated human motion therefore acts as supervision inside the policy's own action space.

In One Sentence

VioLA stops asking a humanoid generalist to emit joint commands and asks it instead for body and hand motion latents, handing coordination and balance to a frozen SONIC body controller and a frozen hand decoder; because paired encoders map human and robot motion into that same space, 93.2% of the 140.6M training frames are human recordings that serve directly as action labels, and on a real Unitree G1 the policy reaches 30/30 locomotion and 31/35 manipulation with no task-specific fine-tuning.

Background and Motivation

Consider telling a humanoid robot to walk to a table and close a laptop. It has to find the table, walk over to it, reach the screen and press the lid down, all without losing its balance. Vision-language-action models (VLAs) and world-action models (WAMs) already follow instructions of this kind on robot arms after demonstration learning, but moving the same generalist recipe onto a humanoid runs into two walls: what the policy must predict, and where the demonstrations come from.

The first wall is the action space. Whole-body control requires the legs, torso, arms and fingers to move together: reaching shifts the centre of mass, and stepping changes where the hands can reach. A generalist policy that predicts joint commands directly has to learn both how those degrees of freedom coordinate and which movement the instruction asks for. The coordination half is already solved by whole-body controllers: given a desired motion, a pretrained whole-body controller computes the joint commands that follow it while maintaining balance, and more recent latent motion controllers accept the desired motion as a compact learned vector, a motion latent, produced by an encoder.

The second wall is data. Humanoid teleoperation needs a robot plus an operator, so recording many tasks in many environments is expensive. Existing humanoid generalists such as GR00T and $\Psi_{0}$ are fine-tuned on the target task with additional robot demonstrations before deployment, which means every new task costs another round of collection. Recordings of people walking, reaching and handling objects are far more plentiful, but human motion is not a robot command: the recording does not contain the joint commands a policy would normally learn to predict.

Every prior route pays for this somewhere. HumanPlus has the robot physically shadow the person during recording, which again requires one robot per demonstration; VideoMimic reconstructs human motion and scene geometry from video and trains humanoid controllers to reproduce the movement in simulation; EgoMimic shares pose supervision between humans and robots while retaining a robot joint-action head; HAT and EgoVLA predict human-centric wrist and hand motion that is converted into robot commands at deployment; EgoScale pretrains on human wrist and retargeted finger motion before adapting with human-robot and task-specific robot data; Being-H0 pretrains a vision-language policy to predict tokenized human wrist and finger motion and adds a robot action head only during post-training; LAPA and WholeBodyVLA infer latent actions from video yet still learn robot-command prediction from robot demonstrations; UniT learns shared human-humanoid tokens through visual and action reconstruction, but those tokens align policy features and are never passed to a robot controller for execution. The common thread is that the human signal either never reaches the deployed action output, or every human demonstration still needs a robot-side counterpart.

The observation behind this paper is that the solution to the first wall already contains the answer to the second. Latent controllers such as SONIC give the human encoder and the robot encoder the same body latent space: encode a person walking and the paired controller decodes a latent that commands walking on the robot. The body controller does not command fingers, so the authors pretrain a hand encoder-decoder module with the same structure to cover the gap: human and robot hand encoders share one space, and a hand controller turns hand latents into finger commands. A generalist policy can then predict motion latents alone, choosing where and when to move, while frozen controllers determine how the joints must move to execute that choice. Human recordings thereby arrive already labelled in the policy's action space, and no robot has to replay them.

Three contributions follow. First, VioLA itself: a generalist humanoid policy that predicts body and hand motion latents while pretrained controllers convert those predictions into coordinated joint commands. Second, a pipeline that turns human recordings and robot demonstrations into latent targets, creating 781 hours of training data of which 93% is human. Third, zero-shot locomotion and manipulation on a real Unitree G1 in a new environment with different object instances and without task-specific fine-tuning, plus comparisons of VLA and world-action backbones and of human versus robot supervision, including real-robot locomotion learned from human demonstrations alone.

Preliminaries

FSQ motion codes and reference windows. Each encoder emits a 64-coordinate motion code formed by flattening two 32-dimensional finite-scalar-quantized (FSQ) codes whose coordinates lie on the grid $\{k/16:k=-16,\ldots,15\}$; call that grid $\mathcal{G}$. Body and hand codes share this format, but their encoders and decoders are independent. One code summarizes a reference window starting at the current frame: at 50 Hz, the SONIC v1.1 robot encoder and the hand encoder read 10 frames at offsets $0,5,\ldots,45$, while the human body encoder reads 10 consecutive frames $0,1,\ldots,9$; when a window would run past the end of a demonstration, the last frame is repeated. The reference window decides what a single code means, and the policy's chunk length $H$ decides how many consecutive codes one prediction covers.

Flow matching time convention. The action expert is trained with flow matching: target chunks are mixed with conformable Gaussian noise at an interpolation time $\tau$ and the network learns a velocity field. Inference starts from pure noise at $\tau=1$ and integrates backwards along the learned velocity to the clean action chunk at $\tau=0$. Even though encoder outputs are quantized codes, the action expert regresses continuous coordinates. Each backbone keeps its own time sampler: $\pi_{0.5}$ takes $\tau=0.999b+0.001$ with $b\sim\operatorname{Beta}(1.5,1)$; DiT4DiT takes $\tau=b/0.999$ and discretizes time into 1,000 conditioning buckets; GR00T runs in the opposite direction, sampling $r=0.999(1-b)$, building $(1-r)\bm{\epsilon}+r\mathbf{Z}_{t}$ and regressing $\mathbf{Z}_{t}-\bm{\epsilon}$, which returns to the common convention after setting $\tau=1-r$ and flipping the sign.

Real-time chunking (RTC). While the policy computes the next chunk, the robot is still executing part of the previous one, and two independent predictions can disagree at the handover, producing an action jump. RTC conditions the next prediction on the latents that will already be executed before inference finishes, so the new chunk grows out of the motion currently under way. This paper runs RTC inside the motion latent space and quantifies its effect on handover continuity in the experiments.

Method

A shared latent action space

Closing a laptop requires reaching for the lid and pushing it down while staying balanced. A body motion encoder summarizes a short segment of recorded movement as a vector, the motion latent; its paired decoder is a pretrained whole-body controller that, given the latent and the robot's recent state, produces commands for the legs, torso and arms to follow the encoded movement while maintaining balance. A separate hand encoder summarizes finger motion, and its paired decoder converts a hand latent into finger commands. What VioLA learns is to predict those body and hand latents from the scene and the instruction: for the laptop task it predicts standing, reaching and hand motions, while the pretrained body controller and hand decoder determine the joint commands that execute them.

On the body side the paper uses SONIC's pretrained encoders and controller, whose human and robot encoders map motion into the same body latent space. Because the body controller does not command the fingers, the authors pretrain a hand encoder-decoder module separately with the same structure, and its human and robot hand encoders likewise map motion into a common space. Each encoder summarizes a short window with a 64-coordinate latent, and the two are concatenated into VioLA's 128-coordinate action $\mathbf{z}_{t}=[\mathbf{z}_{t}^{\mathrm{body}};\mathbf{z}_{t}^{\mathrm{hand}}]$. Body and hand latents are predicted together so that reaching and finger motion can be timed to one another.

Given an egocentric image $I_{t}$, an instruction $\ell$ and robot proprioception $\mathbf{s}_{t}$, the policy $p_{\theta}$ predicts a chunk of $H$ successive actions:

$$\widehat{\mathbf{Z}}_{t}\sim p_{\theta}(\mathbf{Z}_{t}\mid I_{t},\ell,\mathbf{s}_{t}),\qquad \mathbf{Z}_{t}=[\mathbf{z}_{t},\ldots,\mathbf{z}_{t+H-1}]^{\mathsf{T}}. \tag{1}$$

Each row of the chunk supplies one body and hand latent for one control step. Because the paired encoders accept both human and robot motion, demonstrations from either source can supervise these predictions, and that is where the paper's whole data strategy starts.

VioLA method overview

Figure 2: Method overview. Left: frozen motion encoders construct body and hand action targets from human or robot demonstrations. Center: the generalist policy predicts motion latents from an egocentric image, an instruction and proprioception, and is the only component updated during training. Right: the frozen body controller and hand decoder turn predicted latents into robot joint commands. Human and robot encoders produce targets for these same decoders.

Frozen motion modules: the body and hand ledgers

SONIC v1.1's body encoder takes 1,751 coordinates: the reference motion expressed in the simulated robot's heading frame. The body decoder takes the current 64-coordinate code plus 10 frames of proprioceptive history (joint offsets, joint velocities, base angular velocity, projected gravity, previous action), 994 input coordinates in total, and emits 29 values that become joint position targets after the controller's default posture and action scaling. Control runs at 50 Hz with four 200 Hz physics steps inside each update. On the hand side, the human and robot hand encoders map motion into a shared 64-coordinate space, and two decoders, Dex3 and Inspire, translate a code into finger trajectories for the corresponding hardware. Every motion encoder and decoder stays frozen while the generalist policy trains: the policy learns to predict their codes rather than learning a hand prior of its own.

Target encoding: humans and robots into one space

An annotated recording of a person closing a laptop contains that person's images, the instruction, and the body and hand movements used to complete the task, but no robot joint commands. The human motion encoders map those movements into VioLA's action space, and robot demonstrations enter the same space through the corresponding robot encoders. For a demonstration source $e\in\{\mathrm{human},\mathrm{robot}\}$, the target at time $t$ is

$$\mathbf{z}_{t}=\bigl[E^{e}_{\mathrm{body}}(\mathbf{m}_{t}^{\mathrm{body}};\gamma_{t});\,E^{e}_{\mathrm{hand}}(\mathbf{m}_{t}^{\mathrm{hand}})\bigr]. \tag{2}$$

Here $\mathbf{m}_{t}^{\mathrm{body}}$ and $\mathbf{m}_{t}^{\mathrm{hand}}$ are short annotated motion windows starting at $t$, and $\gamma_{t}$ is the robot heading used to express the desired body motion; consecutive targets are stacked into the chunk $\mathbf{Z}_{t}$. Demonstrations without hand annotation supervise body predictions only, and their hand coordinates are zeroed in the loss.

Closed-loop simulation annotation: supplying the proprioception human demos lack

Human data is still missing one input the policy requires, namely robot proprioception. The authors obtain it by letting the frozen body controller track the demonstrated motion in simulation. One detail here is easy to miss. Body targets depend on the executing robot's current heading, and the executor's heading can differ from the demonstrator's: if the robot turns toward the table more slowly than the person in the recording did, the next latent has to encode how much turning is still left. Carrying the human heading through the whole clip amounts to assuming the robot tracks the reference exactly, which physics does not permit. Targets are therefore computed in closed loop: at every simulation step the encoder codes the motion using the simulated robot's current heading, the controller decodes that code into joint commands, and the simulator advances one step:

$$\mathbf{z}_{t}^{\mathrm{body}}=E^{e}_{\mathrm{body}}\!\left(\mathbf{m}_{t}^{\mathrm{body}};\,\gamma(\mathbf{s}_{t}^{\mathrm{sim}})\right),\qquad \mathbf{s}_{t+1}^{\mathrm{sim}}=\mathrm{Sim}\!\left(\mathbf{s}_{t}^{\mathrm{sim}},\,D_{\mathrm{body}}(\mathbf{z}_{t}^{\mathrm{body}},\mathbf{h}_{t}^{\mathrm{sim}})\right). \tag{3}$$

At time $t$, the image $I_{t}$, the simulated state $\mathbf{s}_{t}^{\mathrm{sim}}$ and the encoded target $\mathbf{z}_{t}^{\mathrm{body}}$ are paired before the simulator advances. Human samples use this simulated state as body proprioception, while robot samples keep their recorded proprioception. Hand state inputs come from whatever the data stores: for robot demonstrations the hand target uses commanded finger motion where available and the hand proprioception uses measured motion, and the two differ materially during grasping because commanded fingers can close further than the object allows. All targets are computed before generalist-policy training; training itself runs no simulation and updates no motion module. What the pipeline buys is concrete: turning annotated human motion into latent targets never requires optimizing a per-recording mapping onto robot joints.

Training: retargeting GR00T N1.7's action expert to 128 latent coordinates

Demonstrations from both sources now have exactly the same form, namely an image, an instruction, a robot state and a target motion chunk, so one prediction head and one loss serve both. VioLA uses GR00T N1.7 as its backbone (a Cosmos-Reason2 vision-language trunk plus a flow-matching action transformer), keeps its flow-matching objective, and changes only the action expert's output to 128 latent coordinates per step. For a target chunk $\mathbf{Z}_{t}$, conformable noise $\bm{\epsilon}\sim\mathcal{N}(\mathbf{0},\mathbf{I})$ and interpolation time $\tau$,

$$\mathbf{X}_{t,\tau}=(1-\tau)\mathbf{Z}_{t}+\tau\bm{\epsilon},\qquad \mathbf{U}_{t}=\bm{\epsilon}-\mathbf{Z}_{t}, \tag{4}$$

and the action expert $v_{\psi}$, conditioned on backbone features and robot state (together $\mathbf{c}_{t}$), is trained to output $\mathbf{U}_{t}$ from $\mathbf{X}_{t,\tau}$:

$$\mathcal{L}_{\mathrm{motion}}=\mathbb{E}_{\bm{\epsilon},\tau}\!\left[\sum_{n\in\mathcal{B}}\sum_{k=0}^{H-1}\sum_{j=1}^{128}w_{nkj}\bigl(v_{\psi}(\mathbf{X}_{t,\tau},\tau\mid\mathbf{c}_{t})_{n,kj}-U_{n,kj}\bigr)^{2}\right], \tag{5}$$

where $n$ indexes samples in the batch $\mathcal{B}$ (each carrying its own target chunk, noise and condition), $k$ indexes steps inside the chunk and $j$ indexes latent coordinates. The weights $w_{nkj}$ normalize the loss and are zero for coordinates without a target, for example the hand coordinates of a recording with no hand annotation. Two reductions correspond to different backbones. $\pi_{0.5}$ averages over the annotated coordinates of each step first:

$$w_{nkj}=\frac{m_{nkj}}{NH\max(1,\sum_{j^{\prime}}m_{nkj^{\prime}})}. \tag{6}$$

GR00T and DiT4DiT instead average over all valid coordinates in the batch, with GR00T adding $10^{-6}$ to the denominator and DiT4DiT requiring at least one valid coordinate:

$$w_{nkj}=\frac{m_{nkj}}{\sum_{n^{\prime},k^{\prime},j^{\prime}}m_{n^{\prime}k^{\prime}j^{\prime}}}. \tag{7}$$

On a fully annotated batch the two differ only by a numerical offset; when hand annotations are missing, the first gives every action step equal weight while the second gives every annotated coordinate equal weight. Human and robot samples pass through the same action expert and the same loss, the model receives no explicit human or robot source label, and the motion encoders and decoders remain frozen throughout.

Three backbone interfaces: one action space, different conditioning

To test whether the recipe is bound to a particular model, the authors attach the same action space to two VLAs and one WAM: GR00T N1.7, $\pi_{0.5}$ and DiT4DiT. All three predict the same 128 coordinates per step (64 body plus 64 hand) with no target normalization, while chunk length and state conditioning stay exactly as each backbone defines them: GR00T uses $H=40$, the other two $H=50$. The state of $\pi_{0.5}$ is 110 discretized values, namely 29 body joint offsets, 3 gravity coordinates, 14 current finger positions in the Dex3 representation, and a 64-coordinate hand code delayed by 50 ticks; that one-second delay prevents the hand code's reference window from leaking future targets, and during training the delayed code is zeroed with probability 0.5, an option that remains available at deployment. GR00T's state encoder takes 46 values (29 joint offsets, 14 finger positions, 3 gravity coordinates) with state dropout 0.2, and human and robot samples share one action expert and embodiment tag; DiT4DiT uses 32 values.

BackboneChunk length HState conditioningMotion target scaling
$\pi_{0.5}$50110 values, tokenizedidentity
GR00T N1.74046 values, state encoderidentity
DiT4DiT5032 values, state encoderidentity

Table 1: The VioLA interface for three backbones (paper Table 2). All variants predict the same 128 body and hand coordinates with no target normalization.

DiT4DiT is a world-action model: besides actions it predicts the future video frames $\mathbf{V}_{t}$ that follow the current image, and the two losses are summed:

$$\mathcal{L}_{\mathrm{WAM}}=\mathcal{L}_{\mathrm{video}}(\mathbf{V}_{t}\mid I_{t},\ell)+\mathcal{L}_{\mathrm{motion}}(\mathbf{Z}_{t}\mid I_{t},\ell,\mathbf{s}_{t}). \tag{8}$$

It uses Cosmos-Predict2.5-2B and conditions the action transformer on layer-17 features. During training the video branch is supervised by the current frame plus four future frames at offsets 12, 24, 36 and 48, and the action loss also backpropagates into the video backbone; at deployment only the current observation exists, so future video features come from the model's own prediction. For human clips, the recorded future frames supervise video prediction while the encoded body and hand motion supervises action prediction.

Deployment: turning latents into joint commands at 50 Hz

At deployment VioLA predicts a motion chunk from the robot camera image, the instruction and proprioception. At each control step the body controller turns the current body latent plus the recent proprioceptive history $\mathbf{h}_{t}$ into joint commands, and the hand decoder turns the hand latent into finger commands:

$$\mathbf{u}_{t}^{\mathrm{body}}=D_{\mathrm{body}}\!\left(\widehat{\mathbf{z}}_{t}^{\mathrm{body}},\mathbf{h}_{t}\right),\qquad \mathbf{u}_{t}^{\mathrm{hand}}=D_{\mathrm{hand}}^{\mathrm{robot}}\!\left(\widehat{\mathbf{z}}_{t}^{\mathrm{hand}}\right). \tag{9}$$

Body and hand commands update at 50 Hz. Because the body controller reads the robot's changing state at every update, joint coordination does not pause while the generalist policy computes the next chunk. The hand decoder reconstructs 10 frames from each hand latent, executes frame index 5 (0-based) after a 5-tick moving average, and converts that into hand joint commands; frame 0 is used separately to reconstruct the current hand state. The Unitree G1 carries five-fingered Inspire hands with 6 actuated joints per hand, and predicted latents pass through the Inspire decoder to produce 12 finger targets; for a policy trained on 14-value Dex3 hand states, measured Inspire motion is first encoded and then reconstructed with the Dex3 decoder, so what changes is the state representation shown to the policy while execution targets still come from the Inspire decoder. Encoder targets sit on the FSQ grid, yet the action expert predicts continuous coordinates: the $\pi_{0.5}$ execution path clips predictions to $[-1,1]$ and passes them straight to the decoder without rounding.

Continuous execution also requires neighbouring chunks to agree at the handover. VioLA performs RTC in the motion latent space: the next prediction is conditioned on the latents that will be executed before inference completes, so the new chunk carries the motion it has to continue. Handover continuity is measured as the L2 change of body latents between consecutive 20 ms control steps, $\Delta_{t}=\|\mathbf{z}_{t}^{\mathrm{body}}-\mathbf{z}_{t-1}^{\mathrm{body}}\|_{2}$, and a spike at a chunk boundary is a jump.

Data and training schedule: 93.2% of 781 hours is human

The training pool combines the human recording set EgoSuite, derived from EgoStandard, with four robot corpora: Humanoid Everyday, PSI, UnifoLM-WBT and LeVERB. After conversion the pool holds 31,988 demonstrations, 140,572,312 frames and 780.96 hours, with human data accounting for 64.6% of episodes and 93.2% of frames. EgoSuite keeps 20,680 of 26,382 source episodes, since 5,702 are excluded during conversion and filtering; the unified loader reserves 338 Humanoid Everyday episodes for evaluation; and at $H=50$, 46 of LeVERB's 3,555 episodes cannot supply one complete action chunk. Humanoid Everyday and UnifoLM-WBT provide commanded hand motion, PSI provides measured hand motion because it has no commanded trajectories, human hand targets come from fitted MANO trajectories, and LeVERB supplies body targets only.

CorpusEpisodesFramesHoursTargets
Humanoid Everyday (real G1)4,0642,962,76416.46body + hand
PSI (real G1)8351,431,4547.95body + hand
UnifoLM-WBT (real G1)2,8544,454,24024.75body + hand
LeVERB (simulated G1)3,555713,2793.96body only
EgoSuite (human recordings)20,680131,010,575727.84body + hand
Total31,988140,572,312780.96—

Table 2: The converted demonstration pool (paper Table 1). Everything is unified to 50 Hz, and hours are frames divided by 50 Hz. Exposure during training is set by sampling weights, not by corpus volume.

The schedule is 150k steps on human demonstrations followed by 50k steps that sample the five corpora uniformly at probability 0.20 each. Batch size is constant, so this schedule assigns an expected 80% of training samples to human data, which is a different statement from humans holding 93.2% of the available frames. The robot-only variant uses the four robot corpora throughout and is evaluated at both 50k and 200k steps; the human-only variant uses human demonstrations throughout. No variant receives task-specific adaptation.

flowchart TD
  H[Human recordings EgoSuite
SMPL body and MANO hand motion] --> HENC[Frozen human body and hand encoders] R[Robot corpora Humanoid Everyday PSI UnifoLM-WBT LeVERB] --> RENC[Frozen robot body and hand encoders] SIM[Closed-loop sim tracking with frozen body controller
supplies robot heading and proprioception] --> HENC SIM --> RENC HENC --> TGT[Latent targets 64 body plus 64 hand FSQ coords
chunk Z of H steps] RENC --> TGT TGT -->|flow matching supervision| POL IMG[Egocentric image I_t] --> POL LANG[Instruction ell] --> POL PROP[Robot state s_t] --> POL POL[Latent generalist policy
GR00T N1.7 or pi_0.5 or DiT4DiT backbone
the only trained component] --> ZH[Predicted chunk with RTC conditioning
on latents executing during inference] ZH --> DB[Frozen SONIC v1.1 body controller
29 joint targets at 50 Hz] ZH --> DH[Frozen hand decoder
frame 5 of 10 plus 5-tick moving average] DB --> G1[Unitree G1 with Inspire hands] DH --> G1

Figure 3: Training and execution dataflow of VioLA. Frozen encoders write both kinds of demonstration into one latent space, the generalist policy is the only trained component, and frozen decoders turn predictions back into joint commands.

Experimental Results

Evaluation setup

The hardware is a Unitree G1 with five-fingered Inspire hands, evaluated in the authors' laboratory. Instructions for the six locomotion and posture tasks come from LeVERB and the seven manipulation tasks from Humanoid Everyday. Both corpora also contribute training demonstrations, so the evaluation tasks overlap the training task families; what is held out is the specific episodes, the laboratory environment and the object instances, and a reserved split of Humanoid Everyday is excluded from training entirely. Zero-shot here means deployment without task-specific fine-tuning. Each policy is tested five times per task, success requires completing the instruction while progress also credits partial completion (a robot-only policy that sits down with its arms still extended scores 0.5, and a DiT4DiT kettle trial that slowly closes the lid but never returns the arm to idle scores 0.8), tasks are weighted equally, and one standard error over trials is reported. Locomotion tasks are limited to 5 s (Bend Down 10 s), manipulation tasks have no fixed limit but how the motion ends still counts toward progress, and every task starts from an idle standing posture except Stand Up, which starts seated. Only full credit counts as success.

Zero-shot locomotion: 30/30

The six tasks span holding a posture, raising an arm, bending down, walking forward, sitting down and standing up from a chair. VioLA predicts the body and hand motion for each instruction, the frozen body controller produces the coordinated body commands and the hand decoder produces the finger commands, and all 30 trials succeed. The released GR00T N1.7 manages only standing still, 5/30 (16.7%), and $\Psi_{0}$ completes none (0/30). In other words, VioLA follows all six locomotion and posture instructions in the authors' laboratory without any task-specific fine-tuning, and the Bend Down sequence shows a full-body posture change in which the robot lowers from standing into a crouch and holds it.

Locomotion and posture task success

Figure 4: Locomotion and posture success rates (top half of paper Figure 3). Five trials per task across six tasks: VioLA is perfect, GR00T N1.7 is non-zero only at standing still, and Ψ₀ is zero everywhere. Photos show each task on site.

Zero-shot manipulation: 31/35

Manipulation adds a further requirement: the body must bring the hand to the object and the fingers must act at the right moment to move, grasp or release it. VioLA completes 31/35 trials (88.6%), succeeding in every trial of Rotate Chair, Close Laptop, Place Dumpling, Close Kettle and Push Duck, in 4/5 Hang Coat trials and in 2/5 Store Shampoo trials. Hang Coat means receiving a coat from a person and folding it over the other arm, so the task set covers pushing and closing as well as receiving, transporting and placing. The released GR00T N1.7 completes none of the 35 trials, and $\Psi_{0}$ completes three chair rotations and nothing else (3/35, 8.6%).

Manipulation task success

Figure 5: Manipulation success rates (bottom half of paper Figure 3). Ψ₀ reaches roughly sixty percent only on Rotate Chair; on Store Shampoo VioLA is near forty percent while the other two are at zero.

The four failures concentrate on acquiring and retaining objects. In the Store Shampoo failures the robot knocks the bottle over while reaching to grasp it, and the last row of Figure 6 shows a failed coat execution in which the robot catches the coat but drops it before completing the fold and return. These examples make the point that reaching an object or landing an initial grasp is not manipulation success. The separately analyzed bottle-carrying task remains unsolved: every VioLA variant fails all five trials, at different stages spanning grasp timing, the transition from grasping to walking, and upright release, and including it lowers VioLA's manipulation success from 31/35 (88.6%) to 31/40 (77.5%).

Rollouts from body motion to object interaction

Figure 6: From body motion to object interaction (paper Figure 4). The first three rows, bending down, closing a laptop and placing a dumpling toy, succeed; the last row, hanging a coat, fails and is marked in red. Black and gold curves are the executed body and hand latents projected onto their first principal components (63-91% and 47-87% of variance), gray bands mark successive action chunks, and triangles align image timestamps.

PolicyLocomotion / posture (6 tasks × 5 trials)Manipulation (7 tasks × 5 trials)
VioLA (GR00T N1.7 backbone)30/30 (100%)31/35 (88.6%)
GR00T N1.7 (released)5/30 (16.7%, standing still only)0/35 (0%)
$\Psi_{0}$ (released)0/30 (0%)3/35 (8.6%, chair rotation only)

Table 3: Main real-robot zero-shot results. None of the three receives task-specific fine-tuning, and VioLA's joint commands come from frozen controllers.

Motion tokens: describing a complex action takes surprisingly little

Consecutive latent predictions can produce nearly identical motion, so the authors group similar predictions and count one distinct motion token per group, separately for body and hand and restarting the grouping for each execution. One complete chair-rotation execution uses on average 60 body tokens and 31 hand tokens; closing a laptop uses 82 and 43; those two executions last 10.0 s and 9.3 s on average. Standing still and raising an arm take about 20 and 36 body tokens, walking forward takes 182, and the hand counts track content just as clearly: raising an arm needs a single hand token, while chair rotation and laptop closing need several distinct hand motions.

Grouping distance is measured on the integer grid: the 64-coordinate latent is mapped to grid coordinates and compared with an L1 distance,

$$\mathbf{q}=\mathrm{clip}\bigl(\mathrm{round}(16\mathbf{z}),-16,15\bigr),\qquad d(\mathbf{q},\mathbf{q}^{\prime})=\sum_{j=1}^{64}|q_{j}-q^{\prime}_{j}|. \tag{10}$$

Scanning in time, the first prediction is kept; each later prediction joins the nearest kept representative if its distance is within a threshold $\rho$, and otherwise becomes a new representative (representatives are original prediction vectors, not means or rounded vectors). The thresholds are calibrated on decoded postures: 84 calibration episodes (32 chair rotations, 32 laptop closings, and 10 each of dumpling placement and duck pushing) plus 21 held-out episodes, with the reference budget taken from SONIC's reported real-robot MPJPE-L of 25.7 mm over 14 links and the authors' measured commanded-versus-observed hand difference of 1.44 cm (83 Humanoid Everyday episodes, 6 fingertip proxies, 32,516 frames). The admissible thresholds satisfying "95% of calibration episodes within the reference budget" are 16 for body and 96 for hand, and the paper reports the tighter 8 and 32 to suppress wrist and single-finger deviations: dropping the body threshold from 16 to 8 lowers the mean wrist p95 over calibration episodes from 5.09 cm to 3.03 cm, and dropping the hand threshold from 96 to 32 lowers the worst-finger p95 from 1.08 cm (chair rotation) and 1.25 cm (laptop closing) to 0.31 cm. Under the tight thresholds, all 84 calibration episodes, all 21 held-out episodes and 3 chair-alternative transfer episodes satisfy the mean budget, and the largest episode-level mean p95 error across calibration and held-out data is 1.234 cm for body links and 0.294 cm for fingertip proxies.

TaskBody tokens (mean)Hand tokens (mean)Mean duration (s)
Stand Still19.82.87.0
Raise Arm35.61.04.8
Walk Forward18216.05.8
Rotate Chair60.431.410.0
Close Laptop82.243.29.3

Table 4: Mean distinct motion tokens per complete execution (read from paper Figure 5; thresholds body 8, hand 32; five recordings per task).

Motion token counts

Figure 7: Motion token counts (paper Figure 5). Each point is one complete recording's distinct body (black) and hand (gold) token count; horizontal lines are means and whiskers one standard error. Numbers below give mean counts and durations.

These numbers make concrete how much the prediction problem has changed. Each body token describes a segment of coordinated motion that the frozen controller converts into joint commands in light of the robot's changing state, and each hand token specifies finger motion through the hand decoder. A complex execution needs only a small number of distinct motion predictions, while the controller still updates joints at every control step: what the generalist policy learns is which motions to emit and when, and coordination is reused from the pretrained motion modules.

What human data actually contributes

A VioLA variant trained exclusively on human data reaches 12/30 (40%) on the locomotion tasks: 4/5 bending down, 3/5 walking, 2/5 sitting and 3/5 standing up from a chair, while it cannot hold the standing-still or arm-raising instructions. It does follow "walk to the yellow sofa" and crouch down, behaviours for which the generalist-policy training contains no robot demonstration at all, which shows that encoded human motion really is usable action supervision for real-robot behaviour and simply does not yet cover all six instructions.

Human demonstrations teach robot behaviours

Figure 8: Human demonstrations teaching robot behaviours (paper Figure 6). Left: the human-only policy executing "walk to the yellow sofa" and "crouch down". Right: locomotion success for human-then-mixed 30/30, robot-only 24/30 and human-only 12/30, all with the same backbone and the same frozen motion modules, and both human-then-mixed and robot-only trained for 200k steps.

Once robot data is available, human-then-mixed VioLA reaches 30/30 after 200k steps against 24/30 (80%) for robot-only: the gap comes from bending down, where robot-only fails all five trials, and from one sitting trial in which the arm was never lowered. At equal update counts, the human-then-mixed schedule raises locomotion success by 20 percentage points. Manipulation goes the other way, with robot-only at 33/35 (94.3%) against VioLA's 31/35 (88.6%): robot-only succeeds on all five shampoo trials but only four kettle trials, while VioLA succeeds on every kettle trial and only two shampoo trials, with identical counts on the remaining five tasks. The division of labour is therefore clear: human data supplies the body motions the robot-only policy lacks, while fine interactions such as grasping a shampoo bottle remain stronger with robot demonstrations.

Training dataLocomotion successManipulation success
human-then-mixed (main VioLA schedule)30/30 (100%)31/35 (88.6%)
robot-only (200k steps)24/30 (80%)33/35 (94.3%)
human-only12/30 (40%)—

Table 5: Human versus robot supervision (paper Section 4.5). All three are VioLA variants sharing one GR00T backbone and one set of frozen motion modules.

Backbone comparison: GR00T strongest, and a WAM can learn it too

The three variants use the same training data and budget, predict the same 64 plus 64 coordinates per step and are executed by the same frozen motion modules, which makes this a protocol-matched comparison between VLAs and a WAM on humanoid learning. On locomotion, GR00T and DiT4DiT both reach 30/30 while $\pi_{0.5}$ reaches 20/30 (66.7%), succeeding at standing still, raising an arm, sitting down and standing up but failing at walking and at the full bend. Manipulation widens the gap: VioLA on GR00T scores 31/35 (88.6%), $\pi_{0.5}$ scores 16/35 (45.7%) and DiT4DiT scores 9/35 (25.7%), with partial completions lifting progress to 51.4% and 29.4% respectively. At the behavioural level all three variants rotate the chair successfully; $\pi_{0.5}$ also closes the laptop and places the dumpling in every trial but drops the coat after grasping it in four trials, while DiT4DiT fails to close its thumb around the coat and one dumpling trial ends in a grasp followed by a drop. The frozen body controller and hand decoder are shared across all three, so the differences come entirely from the generalist policy's predictions: successful manipulation requires holding the reach, grasp and release sequence together through the end of the task.

On prediction latency, GR00T takes 160.2 ms, $\pi_{0.5}$ 208.6 ms and DiT4DiT 248.5 ms, giving replan intervals of 559.9, 608.4 and 648.0 ms (statistics over 161, 83 and 57 episodes and 3,871, 2,554 and 1,035 chunks). At 50 Hz each prediction spans roughly 8 to 12 control steps during which the robot keeps moving, which is exactly why the transition from an ongoing motion into the next prediction is a necessary part of execution and why RTC has to exist.

BackboneEpisodesChunksPrediction latency (ms)Replan interval (ms)
GR00T1613,871160.2 ± 1.8559.9 ± 1.8
$\pi_{0.5}$832,554208.6 ± 0.6608.4 ± 0.6
DiT4DiT571,035248.5 ± 2.5648.0 ± 2.4

Table 6: Measured chunk timing (paper Table 3). Mean ± one standard error across recorded episodes.

RTC: the jumps at the handover really are suppressed

RTC is compared on and off for Stand Still and Raise Arm: the first probes consistency while a posture is held, the second probes continuity when the target posture changes. Without RTC, spikes recur around chunk switches, even for standing still; with RTC the change at a switch falls back to the level of the variation between switches. Within the displayed 5.1 s window the maximum step change drops from 0.332 to 0.064 for Stand Still and from 0.455 to 0.070 for Raise Arm. Appendix A.9 notes that prediction latency itself differs slightly across these four traces (Stand Still 138.9 ms with RTC and 154.1 ms without, Raise Arm 130.0 and 155.3 ms), with chunk switch intervals of roughly 537 and 552 ms and 529 and 553 ms; the reported values are maxima over these four examples, not averages over repeated trials.

Bottle carrying fails at the release stage

Figure 9: The bottle-carrying task failing at the release stage (paper Figure 10). The robot takes the bottle from a person's hand, walks to the table and opens its hand while the bottle is tilted, after which the bottle falls; timestamps are seconds from the start of the clip. This task scores 0/5 and is reported separately from the seven main manipulation tasks.

Limitations

The authors state three. First, VioLA reuses pretrained body and hand modules, so its ceiling is the set of motions those modules can execute; the hand decoder outputs finger position commands with no contact force feedback, reaching for and then retaining an object remains the hard part of the manipulation trials, and bringing contact feedback into hand control is named as the direction to improve. Second, learning from human recordings requires body and hand motion annotations, so scaling to more video depends on estimating those motions reliably; and under the current schedule human supervision is not uniformly better, since human-then-mixed improves locomotion while robot-only is actually stronger on manipulation, leaving open how to keep the locomotion gains while improving object interaction. Third, the main evaluation uses one Unitree G1, 13 tasks and five trials per task, so broader testing across tasks, environments and embodiments has not been done.

A reviewer's reading adds several more points worth naming. First, the zero-shot claim means the task families appear in training while episodes, environments and object instances are held out; it is not task-level zero-shot, and the conclusions should not be extrapolated into "any new instruction will be followed". Second, once the bottle-carrying task is folded in, manipulation success is 77.5% rather than 88.6%, and every variant including the 200k-step robot-only policy fails that task completely, which suggests the grasp-walk-release-upright chain is a systematic weakness of the approach rather than an accident of one backbone. Third, the continuity evidence for RTC comes from the maximum step change of four recordings, which the authors themselves describe as examples rather than statistics, and the token counts depend on the chosen thresholds: the appendix supplies calibration and sensitivity curves, but a claim like "60 tokens describe one chair rotation" is still threshold-sensitive. Fourth, the contribution of human data is entangled with the schedule, since the main schedule gives human samples an expected 80% of exposure while the robot-only control consumes the full 200k steps of robot data, and the paper does not decompose how much of the manipulation gap comes from the mixture ratio versus the nature of the data. Fifth, code and checkpoints are not yet public and the project page only says coming soon, so reproducibility cannot be verified at present.

Conclusion and Outlook

The decisive move in VioLA is not a new model but a change of output for the generalist policy. Once the action space is "motion latents that frozen controllers can execute", coordination and balance are outsourced to modules that are already trained, and the policy only has to decide which motion to perform and when. Because that same space is open to both human and robot motion, human recordings turn from unusable material into demonstrations that carry their own labels. The 140.6M-frame pool with 93.2% human data, together with the real-robot zero-shot results of 30/30 and 31/35, is the most direct evidence for this route so far, and the fact that a human-only policy still reaches 40% locomotion success turns the question "can human video supervise real-robot behaviour" from a hypothesis into something measurable.

It also leaves the community a clear list of questions: where the reliability ceiling for grasping and holding sits when the hand has no contact feedback; whether the benefit of human supervision can extend from body motion to object interaction; how much of the human data a WAM backbone can still exploit through its video branch; and how transferable the frozen controllers are when this latent action interface is attached to further embodiments. For teams building real humanoids, the actionable conclusion is plain: first train the low-level controller until it executes latent motion reliably, then let the upper policy learn inside that space, and the data bottleneck loosens from "robot demonstrations" to "annotated human motion".

Memorable Line

"The solution to the first obstacle already contains the answer to the second: once a controller can execute latent motion, human movement itself becomes the action label for a robot policy."

Related Papers

BRACE: Adapting Whole-Body References for Force and Terrain Aware Humanoid Motion Tracking

BRACE: Adapting Whole-Body References for Force and Terrain Aware Humanoid Motion Tracking

Whole-body tracking has become the interface through which operators drive humanoid robots, yet the references it consumes are recorded on level ground and carrying nothing, so the tracker knows neither the forces the robot must exchange with objects nor the terrain it stands on. Existing controllers address one side of the gap: force-capable policies command an end-effector force but prescribe no whole-body pose, while terrain-adaptive trackers treat loads as disturbances to reject rather than wrenches to command. BRACE folds both into the reference the tracker follows: terrain conformance lifts footholds and root onto the local surface, and a wrench transformation resolves the hand displacement that produces a commanded force together with the center-of-mass and center-of-pressure shifts it induces, bounded by teacher-specific arm-effort limits. Separate exertion and compensation teachers are distilled by DAgger into one flow-matching student that runs on proprioception alone, without a height map or measured wrench, so a teleoperator can supply a flat-ground trajectory while the robot resolves slope and load onboard. On the Unitree G1, in simulation and on hardware, BRACE cuts global tracking error by 40% on average and improves success rate by 18.25 points.

Sudarshan Harithas, Chen Yu, Juan Borbon · 38 views · Oct 5, 2026
HumanoidWhole-Body ControlForce controlOct 5, 2026
Systematically Exploring the Capabilities of GPT-6 Astra as Embodied Policies

Systematically Exploring the Capabilities of GPT-6 Astra as Embodied Policies

Evaluates GPT-6 Astra as an embodied policy across six domains: hybrid control reaches 48% on RoboDojo and 92% on RxR navigation, while direct in-hand control and dense locomotion references stay unreliable; token use and inference latency constrain practical control.

Galbot Team, Chen, Xuchuan, Cheng, Xiaoqian · 58 views · Sep 29, 2026
Embodied AIRobot ManipulationDexterous ManipulationSep 29, 2026
ASENA: Self-evolving Agents for Embodied Navigation

ASENA: Self-evolving Agents for Embodied Navigation

We present ASENA, an embodied agent system that enables general-purpose coding agents to program humanoid navigation, manipulation, and interaction. Through a unified robot harness, agents read sensor data, write and execute programs, inspect recorded outcomes, repair failures, and reuse notes and executable skills while keeping their model weights fixed. We also introduce ASENA-VLN, a 4B monocular navigation policy that serves as an optional tool within this programmable system. ASENA-VLN predicts body-frame trajectories for both extended routes and short-horizon behaviors. Its shared vision-language decoder is trained on route instructions, visual question answering, and a newly curated dataset of geometry-derived atomic navigation tasks. As a standalone policy, ASENA-VLN achieves state-of-the-art success rates of 68.7% on R2R and 70.2% on RxR. When integrated with a coding agent, learned navigation improves ASENA's success rate by 11 percentage points on both agentic benchmarks and reduces execution time. Persistent workspace evolution uses simulator feedback to improve success over ten passes through recurring 100-task subsets. Success increases from 72% to 98% on R2R and from 65% to 89% on RxR. On embodied question answering, ASENA achieves state-of-the-art accuracy with fewer interaction steps. On a Unitree G1, we demonstrate search, visual inspection, spatial reasoning, synthesized gestures, and mobile manipulation combining object pickup, carrying, and handoff without a pre-built map. These demonstrations illustrate how online programming extends robot behavior beyond route following and predefined skills.

An-Chieh Cheng, Isabella Liu, Edmund Bu · 63 views · Sep 30, 2026
Vision-language navigationEmbodied AIHumanoid robotsSep 30, 2026
PanTact: Teaching Whole-Body Dexterity with a Wearable Contact Interface

PanTact: Teaching Whole-Body Dexterity with a Wearable Contact Interface

PanTact treats contact, not joint trajectories, as the transfer currency from people to humanoids. Wearable patches are assembled magnetically from 44x44 mm FSR modules; a custom 50x50 mm PCB streams 16 channels at 1 kHz over a CRC-checked RS-485 daisy chain, one Vive tracker per patch maps sensor centers into the world frame, and contact states are binarized against a per-channel adaptive baseline with threshold max(0.35 beta, r_min). The policy observes body-masked 3D egocentric point clouds, both wrist images and proprioception, and at 10 Hz predicts an action chunk of H=16 steps containing a look-at point, EEF poses with gripper widths, and per-sensor contact goals (binary state plus 3D position). A soft-minimum proximity d(p,q) with T = 0.02 m hands each active contact to whichever robot surface is currently nearest, and active goals are offset by delta along the pressing direction to form virtual goals that generate pressing force, so the G1 holds objects without any tactile sensor on its body. Three control formulations trade off differently: training-free upper-body IK, WBIK whose dense reference is executed by SONIC, and a sparse contact tracker trained with PPO over 4096 simulation environments for 30k iterations (50 Hz, 29 joints, S=8 upper-body / S=16 whole-body contact slots). On a 29-DoF Unitree G1: Grasp-and-Embrace reaches 85% with upper-body IK and 80% with the sparse tracker against 0% for Humanoid UMI; Sweep-and-Stow reaches 90.63% end to end while Humanoid UMI++ scores 18.75% on each stage and 0% end to end; Carry-and-Push is 90% versus 40%. In simulation replay, adding contact goals lowers contact distance for all three controllers at almost no cost in EEF accuracy.

Xu, Xiaomeng, Zhang, Han, Ruan, Zhian · 131 views · Oct 8, 2026
Whole-Body ManipulationTactile SensingContact-Rich ManipulationOct 8, 2026

As an Amazon Associate, we earn from qualifying purchases.