CrossBFM Distilling a Shared Latent Behavior Space Across Humanoid Embodiments

CrossBFM pipeline: latent space distillation, latent-input policy training, and flow-based motion prompting.
CrossBFM. A per-embodiment encoder regresses onto a frozen source latent through the correspondence from retargeted motion in the same timeline (top). A latent-conditioned actor is then trained with PPO, and a flow generator samples latents that deploy on any embodiment (bottom). Because the encoder approximates the source’s backward map, reward prompts are solved on the target in closed form — together with motion tracking and goal reaching to cover all three BFM prompting modes on bodies that never ran unsupervised RL.
Scroll to view more

Abstract

TL;DR — A behavior foundation model's latent space, not its policy, is the transferable asset. CrossBFM freezes one humanoid's Forward–Backward latent as a shared behavioral coordinate system and distills it onto new bodies with a supervised fit, recovering all three BFM prompting modes — tracking, goal reaching, and reward optimization — on bodies that never ran unsupervised RL.

Behavior foundation models (BFMs) give a humanoid a single promptable policy over a latent behavior space. Unsupervised reinforcement-learning frameworks such as BFM-Zero introduce a compact, interpretable latent space that enables zero-shot whole-body tracking and reward optimization — promising results, but ones that cost enormous compute even on relatively small datasets. Retraining that latent space for every other embodiment is therefore expensive, while behaviors ought to be shared across robots in the first place. We close this gap with CrossBFM, which treats the latent space as a transferable asset across embodiments. First, we introduce a latent distillation formulation that freezes a source latent space as a shared behavioral coordinate system and regresses onto it from a target robot's proprioception, via the cross-embodiment motion correspondence that retargeting already supplies — requiring neither a simulator nor RL on the target. In this formulation an embodiment-specific encoder is fit by a single frame-wise cosine regression onto the frozen source latent, which converges in under an hour on one GPU against the 103 GPU-hours that produced the source's backward map. Second, we train latent z-only trackers that observe [z | proprio] with no reference trajectory at inference, so that one latent from a reference motion — or equivalently one latent inferred by a flow-based planner trained on the target latent space — serves as the policy command. Third, because the encoder approximates a backward map, the closed-form reward projection of Forward–Backward models runs entirely target-side over cached frames, with thresholds transported through the two feature marginals — so reward prompting needs neither a simulator nor a target-side FB model.

We validate the pipeline on three morphologically distinct humanoids, observing that the distilled latent matches its reference-fed upper bound to within 0.025 rad joint MAE without falls, reaches goals smoothly via latent interpolation, degrades by only 5% when using just a quarter of the original dataset for distillation, and completes 41 source task rewards — covering all three prompting modes of BFM-Zero without unsupervised RL.

Method

CrossBFM freezes a source BFM on the Unitree G1, treats its 256-dimensional FB latent as a fixed behavioral coordinate system, and distills it onto new humanoids. Because every clip is retargeted to every robot along the same timeline, the cross-embodiment correspondence that ordinarily has to be learned is resolved for free, and latent transfer reduces to a supervised fit.

Stage 1 — The embodiment-specific encoder
Latent space distillation: G1 retargeted motions pass through the frozen backward map into the source latent sphere, while the same motions retargeted to embodiment X pass through an embodiment-specific encoder reading joints, key bodies and root; an alignment loss ties each predicted latent to the source latent for the same frame.

The same clip is retargeted independently to every robot along one timeline, so frame i means the same instant on every body and the encoder Er is a supervised regression from one robot's proprioception onto a latent a different robot produced. The training objective is given by:

Lalign = (1/N) ∑t (1 − cos(zt, z*t))
zt = projZ(Er(ort−H+1:t))

A frame-wise cosine regression, with the projection applied at the output so every prediction lands on the sphere of radius √d that the tracker expects. Over a window of H = 64 frames the encoder reads, per frame, joint positions and velocities, root height, rotation and linear velocity, and key-body positions; Er is a 4-layer bidirectional pre-LN Transformer.

Trained over cached source latents, it converges in under an hour on a single consumer GPU — against the 103 GPU-hours, expert buffer, and discriminator that produced BS for one body. In FB the backward map is defined through successor measures, a dynamical object; the difficulty turns out to lie in the correspondence rather than the dynamics and is addressed with motion retargeting. Encoders and trackers are thus per embodiment and cheap, while the space they map into is fully reusable.

Stages 2–3 — z-only trackers and flow-based prompting
Latent-input policy training: a latent sampled from the distilled space is concatenated with proprioception and fed to an embodiment-aware policy, trained with PPO against a simulator that returns a reward.

Stage 2 — latent-conditioned policy

Each embodiment receives a tracker trained with PPO whose actor observes the latent with proprioception alone, including base angular velocity, IMU roll and pitch, joint positions and velocities, the last action. The critic stays asymmetric, keeping privileged reference observations available in simulation and discarded at deployment.

Flow-based motion prompting: noise and behavior conditions feed a latent motion generator whose output is trained against the distilled latent space and deployed to the embodiment-aware policy.

Stage 3 — flow-based prompting

Because z is shared across embodiments, one generative model over latent trajectories serves every robot and prompting no longer needs a retargeted reference at all. We train a rectified-flow model over latent chunks conditioned on a behavior mode or text embedding, the preceding latent frames, and optional motion features. expect.

Deployment — reward prompting without a target-side FB model

Tracking and goal reaching follow from the encoder and the policy. Transferring the source's rewards does not — and it is the third of the three modes an FB model is supposed to answer. An FB model answers a reward prompt in closed form: for a reward r over states drawn from ρ, the optimal latent is a reward-weighted projection onto the backward map,

zrew = projZ(∑i ωi r(siBS(si))
ω = softmax(τ r(s1:M)),  si ∼ ρ

so that Q under that latent is maximized with no retraining. Since Er reproduces projZ(BS(·)) through the retargeting correspondence, substituting the encoder for BS and the robot's own corpus for the state buffer makes the whole projection target-side — at a cost of cos ≥ 0.995 against the latent BS yields on the frame-aligned source states.

Every shared feature is a function of cached key-body kinematics, so neither a replay buffer nor a simulator is needed to answer the prompt. Concretely: encode the all the frames of LAFAN once with Er over 64-frame windows, evaluate each task reward on the stored features without restoring any state, and return the weighted projection at τ = 10, held constant as the prompt to the policy.

However, differences in kinematics make some absolute configurations unreachable for a target robot — an arm reach a shorter arm cannot achieve — so a threshold that means “arms raised” on the G1 need not mean it on T1. We therefore transport each threshold through the two feature marginals, θ(r) = Φr−1S(θ)), with margins scaled by the p5–p95 span ratio, which restores what the source's task meant on a differently proportioned body.

Results

Setup. We validate our pipeline with 3 morphologically distinct humanoids varrying in DoF count, body count, joint topology, and joint ordering; while sharing the LAFAN timeline of 40 motions and 264,625 frames. We keep whole motions instead of sampled frames for validation test.

present on all four not on all four

Each column lists that robot’s actuated joints in model index order. Hover or tap one to find it on the other three.

01Tracking & Goal Reaching

We compare latent-conditioned policies against joint-conditioned counterparts (TWIST2) that share dataset, environment, and PPO budget and differ only in conditioning: the joint arm receives the reference joint trajectory at every step, while the latent arm observes [z | proprio] and no reference at all.

Tracking: the prompt costs almost nothing

Across three morphologically distinct robots the difference between the two arms remains within 0.025 rad (+0.0247 on M3, +0.0057 on T1, and +0.0029 on N1), and no policy falls. Replacing a per-frame reference with a 256-dimensional prompt therefore makes minimal difference to tracking accuracy.

Goal reaching: transitions the joint-conditioned policies fail

Joint-conditioned policies cannot switch smoothly between poses — the result is large motor torques and early terminations — so we report goal reaching for the latent-conditioned policies alone. Interpolating in latent space instead produces smooth pose-to-pose transitions, at a cost of at most 0.03 rad over the corresponding tracking MAE.

The same policies also track behaviors prompted by the flow-based planner — running, walking, and other locomotion modes — suggesting that a fine-grained enough latent space could let a user command a humanoid through behavioral intent rather than joint targets.

Latent (ours) Joint (reference-fed)
Closed-loop joint MAE for the latent and reference-fed arms, and for goal reaching On M3, tracking MAE is 0.2024 rad with the latent arm and 0.1777 with the reference-fed joint arm, a gap of +0.0247; goal reaching, which the joint arm cannot do, is 0.2345. On T1, tracking MAE is 0.1901 rad with the latent arm and 0.1844 with the reference-fed joint arm, a gap of +0.0057; goal reaching, which the joint arm cannot do, is 0.1967. On N1, tracking MAE is 0.1391 rad with the latent arm and 0.1362 with the reference-fed joint arm, a gap of +0.0029; goal reaching, which the joint arm cannot do, is 0.1512. 5 10 15 20 25 Joint MAE (×100) Tracking Goal reaching M3 latent: 0.2024 ± 0.0067 rad 20.24 M3 joint: 0.1777 ± 0.0033 rad 17.77 T1 latent: 0.1901 ± 0.0032 rad 19.01 T1 joint: 0.1844 ± 0.0043 rad 18.44 N1 latent: 0.1391 ± 0.0038 rad 13.91 N1 joint: 0.1362 ± 0.0032 rad 13.62 M3 goal: 0.2345 ± 0.0011 rad 23.45 T1 goal: 0.1967 ± 0.0012 rad 19.67 N1 goal: 0.1512 ± 0.0023 rad 15.12 M3 T1 N1 M3 T1 N1 Closed-loop joint MAE for the latent and reference-fed arms, and for goal reaching On M3, tracking MAE is 0.2024 rad with the latent arm and 0.1777 with the reference-fed joint arm, a gap of +0.0247; goal reaching, which the joint arm cannot do, is 0.2345. On T1, tracking MAE is 0.1901 rad with the latent arm and 0.1844 with the reference-fed joint arm, a gap of +0.0057; goal reaching, which the joint arm cannot do, is 0.1967. On N1, tracking MAE is 0.1391 rad with the latent arm and 0.1362 with the reference-fed joint arm, a gap of +0.0029; goal reaching, which the joint arm cannot do, is 0.1512. 5 10 15 20 25 Joint MAE (×100) Tracking Goal reaching M3 latent: 0.2024 ± 0.0067 rad 20.24 M3 joint: 0.1777 ± 0.0033 rad 17.77 T1 latent: 0.1901 ± 0.0032 rad 19.01 T1 joint: 0.1844 ± 0.0043 rad 18.44 N1 latent: 0.1391 ± 0.0038 rad 13.91 N1 joint: 0.1362 ± 0.0032 rad 13.62 M3 goal: 0.2345 ± 0.0011 rad 23.45 T1 goal: 0.1967 ± 0.0012 rad 19.67 N1 goal: 0.1512 ± 0.0023 rad 15.12 M3 T1 N1 M3 T1 N1
Closed-loop joint-position MAE (×100, lower is better) on the three distillation targets, distilled from a frozen Unitree G1 source. Bars are the mean over 3 seeds and whiskers are ±1 std; every policy held ep_frac = 1.0 (no falls). Past the dashed rule, goal reaching is latent-only: joint-fed policies cannot transition smoothly between poses, terminating early instead.

02Reward Optimization

The third prompting mode, and the one that does not follow from the encoder and the policy alone. We evaluate the target-side projection on the 41 task rewards the source was designed on: each latent is held for 500 steps and scored on the settled half under the same transported reward. Because reward and encoder read the same key-body features, a source-defined task is evaluable on the target's cached frames with no simulator in the loop.

Mean reward over 41 source tasks, computed on the source and transferred versus computed target-side
Robot DoF / Bodies zrew from source zrew target-side (ours)
M327 / 300.1450.508
T123 / 240.2280.261
N123 / 290.1770.523

Mean reward over the 41 source tasks (higher is better), distilled from a frozen G1 source (29 DoF, 30 bodies). From source computes the reward-optimal latent on the G1 and transfers the vector; target-side computes it on the robot that will execute it, through that robot’s own encoder and corpus.

Where the latent is computed matters more than the fact that the space is shared. Inferring it on the source and handing over the vector triples the score on M3 and N1 — a reward prompt should be solved on the body that will execute it, since the same behavioral intent resolves to a different point once the kinematics differ. The marginal transport is what makes that possible without redefining the task by hand.

Together with tracking and goal reaching, this covers all three BFM prompting modes on bodies that never ran unsupervised RL — functional evidence that the space transferred, beside the geometric evidence below.

03Rollouts

LAFAN reference motions

0.0s

Reward-optimized latents

0.0s

Flow-prompted latents

0.0s

04Data Scaling

Aligning the space takes far less data than learning it. Holding the encoder training setup fixed, we cut the training frames by up to 90%: for each motion we randomly sample 1.5–3 s sequences, preserving temporal structure, up to the target frame count.

Joint MAE on M3 against the fraction of the distillation corpus Joint MAE (times 100) is 21.32 at 100 percent of the corpus, 22.07 at 75 percent, 22.18 at 50 percent, 22.41 at 25 percent, 27.06 at 10 percent, 29.99 at 5 percent, and 44.11 for the random-latent noise control. 10 20 30 40 Joint MAE (×100) 100%: 21.32 21.32 100% 75%: 22.07 22.07 75% 50%: 22.18 22.18 50% 25%: 22.41 22.41 25% 10%: 27.06 27.06 10% 5%: 29.99 29.99 5% Noise: 44.11 44.11 Noise Joint MAE on M3 against the fraction of the distillation corpus Joint MAE (times 100) is 21.32 at 100 percent of the corpus, 22.07 at 75 percent, 22.18 at 50 percent, 22.41 at 25 percent, 27.06 at 10 percent, 29.99 at 5 percent, and 44.11 for the random-latent noise control. 0 10 20 30 40 Joint MAE (×100) 100%: 21.32 100% 21.32 75%: 22.07 75% 22.07 50%: 22.18 50% 22.18 25%: 22.41 25% 22.41 10%: 27.06 10% 27.06 5%: 29.99 5% 29.99 Noise: 44.11 Noise 44.11
Data scaling on M3: joint MAE (×100, lower is better) as the distillation corpus given to the encoder shrinks. Noise is a random-latent control. The tracker is retrained at every fraction.

Joint MAE rises from 0.2132 at 100% to 0.2241 at 25%, a 5% degradation for a fourfold reduction in data, with 75% and 50% indistinguishable in between. Below that fraction the curve breaks, reaching 0.2706 at 10% and 0.2999 at 5% against a noise-latent control at 0.4411. Describing a behavioral coordinate system to a new body therefore costs a fraction of what learning it did.

Training cost

The source BFM-Zero takes 8×H200 for 4–5 days of unsupervised off-policy RL. Every additional embodiment costs far less and differs in kind: distillation is a supervised regression over cached latents that converges in under an hour on a single RTX 4090, and the tracker is an ordinary PPO run — cheap because it never has to discover a behavior space, only to realize one that already exists.

05Latent Space Geometry

Geometry plays an important part in the behavior of latent spaces. Projecting source and distilled latent trajectories together at the same fractions shows why the curve breaks for 25%.

held-out LAFAN clip Click a behavior or an embodiment to show only those latents; hover a trajectory to follow that motion across all three fractions.
Source (G1) and distilled (M3) latent trajectories at the same corpus fractions, coloured by behavior; dashed outlines mark the encoder's held-out clips. Each panel is its own t-SNE fit of the latents both embodiments produce on the same 20 LAFAN motions, so what is comparable across panels is the structure, not the coordinates.

At 100% and 25% the distilled trajectories overlay the source's and the behavior classes remain separated, including on clips the encoder never saw — the space is aligned rather than memorized. At 10% the classes interpenetrate and the held-out clips no longer land near the behaviors to which they belong. The degradation is therefore relational rather than pointwise: what fails first is not the accuracy of any single latent but the arrangement among them — which is exactly what the reward projection depends on, since it reads a weighted average over many frames rather than any one of them.

Real Robot

We deploy our policy on real robot hardware to validate how the latent space transfers to the real world.

01Goal Reaching

A sequence of goal latents played on the real robot, held in turn and interpolated between.

02LAFAN Reference Motion

A LAFAN clip encoded into the shared latent space and tracked on the real robot. The prompt is a latent trajectory, not a joint-space reference.

03Flow-Prompted Motion

A latent trajectory sampled from the flow generator and played on the real robot. No reference motion is involved at any point — the behavior is generated in the latent space and executed directly.

BibTeX

@inproceedings{crossbfm2026,
  title     = {CrossBFM: Distilling a Shared Latent Behavior Space
               Across Humanoid Embodiments},
  author    = {Anonymous},
  booktitle = {Under Review},
  year      = {2026}
}