ShadowDancer

Teaching video world models any action by learning unified dynamics representations from a video and its shadow.

“They see only their own shadows, or the shadows of one another, which the fire throws on the opposite wall of the cave.” — Plato, The Republic

Jin Cao1  ·  Zian Meng1,2  ·  Kaipeng Zhang1†

1Alaya Lab    2Shanghai Innovation Institute

chained to the wall of shadows the turn toward the light the sun itself

01 · On the cave wall

One latent interface. Every dynamics you see below.

Every video here is generated by ShadowDancer from a first frame and a stream of demonstrated actions — first-person gunfights, third-person swordplay and spellcasting, monster hunts, human motion under orbiting cameras, and robot manipulation. Each showcase runs on a model specialized to its world: no labels, an action is just a clip, read once by a frozen encoder and replayed as a stream of reusable assets.

First-person
Night city — weapon switching, firing, driving
02 · The allegory, taken literally

Every video is a shadow.

In Plato's cave, the prisoners mistake shadows for the things themselves. A video makes the same confusion easy: it shows its dynamics — what moves, and how — only through one particular appearance, one character, one scene, one camera. Trained on single videos, latent action models cannot tell which traits belong to the action and which merely co-occur with it — they entangle the two indiscriminately.

Our answer is to observe the same dynamics twice. A shadow pair is two frame-synchronized renders of one dynamics with everything else independently resampled — two shadows of one motion. Whatever survives the pairing is the action; nothing else can help predict one shadow from the other. And that cuts both ways, by design: traits an action owes its identity to — the weapon in a combat move, the flames of a fire spell — stay inside the action simply by not being resampled. The representation is invariant to what a pairing resamples, and faithful to what it preserves: what it couples to is a choice of the protocol, not an accident of the data.

Below is the Shadow Library itself — browse the pairing protocols. Each tab is one entry family; watch what stays identical between the two videos (the dynamics) and what changes (everything that was resampled). The pairing is the definition of the action: what a tab preserves is exactly what the latent will control.

video  x
same dynamics
shadow  x̃
shared dynamicsthe arm trajectory and gripper state
independently resampledtabletop scene, clutter, materials; the camera is held static
control mask (cam, dyn)(0, 1) — manipulation without camera motion
03 · Method

From shadow pairs to a world model.

ShadowDancer pipeline
i

Construct shadow pairs

The Shadow Library replays one dynamics while everything else — character, scene, lighting, camera — is independently resampled. Animation suites, open-world games, and robot simulators all emit the same artifact: two frame-synchronized clips sharing one dynamics.

ii

Cross-shadow prediction

A latent action model reads actions from one shadow and must re-enact them in the other. What the pairing resamples cannot cross the pair, so the latent keeps only what the pair shares — the dynamics, and any trait bound to it — provably the minimal sufficient representation.

iii

Block-causal world model

A video diffusion backbone, conditioned on the action latents and on source motion assets, is converted to a block-causal generator that streams long rollouts from reusable, variable-length action assets.

04 · Action transfer

The same action, in a world it has never seen.

Unlike the per-world demos above, everything in this section comes from a single ShadowDancer model — one checkpoint, one latent interface, four dynamics families. We extract the action from one video and generate from the first frame of its shadow — the ground truth is the other shadow itself. Against Olaf-World, the state-of-the-art self-reconstruction latent-action model retrained on our data with the same backbone, the entangled latent drags along whatever appearance happened to accompany the action and warps its subjects; the shadow-trained latent re-enacts the dynamics faithfully.

“Weapon Fire”dynamics = player control (move, aim, fire) + camera  ·  resampled = scenereference | Olaf-World | ours
“Dance”dynamics = body motion + camera  ·  resampled = character, scenereference | Olaf-World | ours
“Sword Slash”dynamics = character motion + chase camera  ·  resampled = scenereference | Olaf-World | ours
“Lift Peg Upright”dynamics = robot-arm trajectory only  ·  resampled = tabletop scenereference | Olaf-World | ours
05 · Long action rollout

Chained commands, judged head-to-head.

Discrete commands become library lookups of stored action assets and stream through the block-causal generator. With no ground truth for a chained command stream, rollouts are judged in blinded two-alternative forced choice against interactive world models driven through their native interfaces — LingBot-World 2.0 (camera poses + text) and Yume-1.5 (text + keystrokes) — and against Olaf-World's latent interface. Each strip below shares the first frame and the command stream; any method whose rollout ends early holds its last frame.

Robot manipulationgrasp and release — a chained pick-and-place command streamOlaf-World | Yume-1.5 | LingBot-World 2.0 | ours
First-person combatweapon switching and firingOlaf-World | Yume-1.5 | LingBot-World 2.0 | ours
Human motiondense reference following under an orbiting cameraOlaf-World | Yume-1.5 | LingBot-World 2.0 | ours
Third-person combatchained skill execution against a monsterOlaf-World | Yume-1.5 | LingBot-World 2.0 | ours
06 · Out of the cave

Actions the model has never seen.

“And then he would see the sun itself, and not mere reflections of it — and he would know it to be the source of all that he and his fellows had been seeing.”

The freed prisoner does not understand by staring harder at the wall — he understands the moment he turns around and sees the sun. Once you know the dynamics rather than the shadow, a new shadow is no obstacle. We mod an open-world game with assets that exist nowhere in the training library — a new rifle, a new character, a greatsword — record each primitive action once, and replay the extracted assets elsewhere in the world. The encoder reads dynamics, not memorized action categories — so the action library is open-ended: a newly demonstrated behavior simply joins it.

AUnseen action assets — each recorded once

Every cell below is one action asset: a single primitive — move (W/A/S/D), look (I/J/K/L), fire or attack (F) — demonstrated once with the modded asset and encoded once by the frozen encoder. These nine clips per mod are the model's entire knowledge of the new weapon and character; there is no other label, no fine-tuning.

First-person · modded rifle
A modded white-and-gold rifle with new raise, recoil, and muzzle response — nine primitives recorded in first person.
Third-person · modded character & greatsword
An unseen player character carrying a two-handed greatsword whose attack is a swing, not a shot — nine primitives recorded in third person.
BGeneration in a new environment

The extracted assets are chained and replayed elsewhere in the world. The environments are ones the model has seen — the assets are not: the modded gait, the raise, the recoil, and the sword swing all survive the replay.

First-person · unseen rifle
The modded rifle, fired down an airport runway
Third-person · unseen sword & character
The modded character swings the greatsword on a seaside pier
Citation

BibTeX

@article{cao2026shadowdancer,
  title   = {ShadowDancer: Teaching Video World Models Any Action by Learning
             Unified Dynamics Representations from a Video and Its Shadow},
  author  = {Cao, Jin and Meng, Zian and Zhang, Kaipeng},
  journal = {arXiv preprint},
  year    = {2026}
}