window.huggingface={variables:{"SPACE_CREATOR_USER_ID":"68772e352944cd1606921c16"}};r>

VT-WM vs Cosmos3 — same windows, all five streams

Ground truth, the VT-WM baseline and the Cosmos3 model side by side on the ten short-horizon windows published in the vtwm-cosmos inference study.

What is being compared

Episode motherboard_0911_episode_000, windows at t_start 255, 337, 453, 790, 1107, 1235, 1918, 2341, 2940, 3058. Each window is 16 frames at 15 fps: 8 recorded history, 8 predicted. Only the 8 predicted frames are shown.

These are the exact windows the inference study used, and they land on our window grid without resampling: that episode is stored with stride 1 and window 16, so their t_start is our window index. Every clip below was checked against the dataset's own t_start field rather than assuming the mapping.

Our decoder emits 13 frames for a 4-latent window (1 + 4 + 4 + 4; Wan2.2 is 4× temporal) while theirs rebuilds all 16 with pad_latent.PadLatents. The two framings disagree about the history, but the predicted halves are the same 8 raw frames — ours is decode[5:13] (latents 2-3 = raw 8..15), theirs is frames[8:16]. Showing only the predicted half removes that ambiguity rather than papering over it.

Side by side

rows: env camera · wrist L · wrist R · tactile L · tactile R  |  columns: ground truth · VT-WM · Cosmos3 at 35 steps  |  8 predicted frames

Grey border = ground truth. Red border = predicted.

The one number that is actually comparable

F0 latent MSE — squared error on the first predicted latent block, in normalized latent space, averaged over the same ten windows. This is the metric their ablations.json reports, computed here with the same definition. No decoder is involved, so unlike PSNR or LPIPS it is not contaminated by the fact that the two models decode differently.

streamVT-WM
no step axis
Cosmos3
1 step
Cosmos3
2 steps
Cosmos3
4 steps
Cosmos3
10 steps
VT-WM ahead from
env camera0.05370.02780.02890.03610.0474never
wrist left0.10350.07170.07720.09520.119510 steps
wrist right0.21540.15540.17380.22770.27644 steps
tactile left0.00380.00460.00410.00440.00561 step
tactile right0.01150.01340.01330.01660.02231 step

Green marks the step counts at which VT-WM is already ahead on that stream.

35 steps is what the Cosmos3 side runs, and its F0 latent MSE at that setting was never published. The released ablations.json solver block stops at 10 steps, so the table above ends there. The trend across the published points is monotone (video 0.0278 → 0.0289 → 0.0361 → 0.0474 from 1 to 10), so 35 steps would sit higher still — but extrapolating a number into a comparison table would be inventing it, so the column is absent rather than estimated. The sharpness table below does cover 35 steps, because that was measured here from the published preview grids rather than taken from their file.
There is no single honest step count, so the curve is the result. VT-WM is an autoregressive predictor (predictor: ar, one forward per latent frame): it has no denoising-step axis and is a horizontal line here. Cosmos3 is a curve. Picking one column is a choice, and the choice changes who wins — at 1–2 steps Cosmos3 leads on all three camera streams, by 4 steps VT-WM is ahead on wrist_right, and by 10 steps it leads on both wrists and both tactile streams.
Do not read "more steps makes Cosmos3 worse" literally. This is squared error against the one recorded future, and few-step samples sit near the conditional mean, which is exactly what squared error rewards. As steps rise, Cosmos3's samples get sharper and more diverse and the metric punishes it — for a capability VT-WM does not have. VT-WM is trained with an L1 next-latent objective, so it emits the conditional median, the MSE-favourable kind of output, at every step count.
If one column has to be the headline, it is 1 step. That is the only setting which is both compute-matched (one forward per block on each side) and mode-matched (both outputs near the conditional mean, so the error measures the same thing on both sides). It is also the column most favourable to Cosmos3. Quoting the 10-step column instead would let VT-WM "win" four of five streams by scoring a sampler with a metric that penalises sampling. For perceptual realism or multi-window coherence Cosmos3 needs ≥ 4 steps — but there the metric has to change too, not stay MSE.

Sharpness — the axis MSE cannot see

Gradient energy of the prediction divided by gradient energy of that model's own ground truth, over the same ten windows. 1.000 = as sharp as real footage. Below 1 is blur, above 1 is high-frequency detail the recording does not contain.

modelenv camerawrist leftwrist righttactile lefttactile right
VT-WM (no step axis)0.9370.9690.8620.8320.828
Cosmos3, 35 steps1.1151.1281.1131.5181.582
Cosmos3, 10 steps1.1141.1231.1081.5021.566
Cosmos3, 4 steps1.0891.1081.0761.4611.512
Cosmos3, 2 steps1.0901.1011.0361.4671.523
Cosmos3, 1 steps1.0701.0700.9961.4181.469
The two models fail in opposite directions, and neither is "sharper = better". VT-WM sits at 0.83–0.97: it is under-sharp, which is exactly what an L1 next-latent objective produces — the conditional median of the futures, i.e. their average, i.e. blur. Cosmos3 sits at 1.00–1.58 and climbs with steps: it is over-sharp, synthesising high-frequency content that is not in the recording. On the tactile streams its high-frequency share reaches 2.4× the ground truth's. Blur discards information; hallucination invents it. The target is 1.0, so the error is |ratio − 1|, and by that measure neither model is close on tactile.
Why the ratio, not the raw number. The Cosmos3 clips were decoded by their Wan2.2 VAE plus the tactile LoRA and ours by the stock diffusers decoder, so absolute sharpness is not comparable. Dividing by a ground truth that went through the same decoder cancels that to first order. The residual was measured rather than assumed: the same eight ground-truth frames through the two decoders differ by 1.09–1.26× in gradient energy (ours is the higher one). That bounds the systematic error at roughly a quarter, which is far smaller than the VT-WM 0.83 vs Cosmos3 1.42 gap on tactile, so the direction of the result survives it.

Decoder calibration

The Cosmos3 column was decoded by their wan22_vae.Wan2_2_VAE plus a tactile LoRA and an anchor-restoration step. Ground truth and VT-WM were decoded by the stock diffusers AutoencoderKLWan; the LoRA and the wan22_vae package live on their cluster and are not available here. So part of any visible difference between column 2 and column 3 is the decoder, not the model.

Rather than asking you to take that on faith, here is the same ground truth through both decoders. Whatever difference you see here is decoder; subtract it before reading the comparison above.

the SAME ground-truth frames through the two decoders
Expect the gap to be largest on the tactile rows. Their LoRA was fine-tuned on tactile frames specifically, which is exactly where a stock decoder has least to work with.
Measured, not asserted — and it is large enough to rule a metric out. LPIPS between the same ground-truth latents decoded the two ways is 0.194 / 0.188 / 0.206 / 0.257 / 0.234 (env camera, wrist L, wrist R, tactile L, tactile R). On four of the five streams that floor is bigger than either model's distance to its own ground truth, so a cross-model LPIPS or PSNR number here measures the decoders, not the models. That is why the table above uses F0 latent MSE, which never leaves latent space, and why the sharpness section uses a ratio to each model's own ground truth, where the offset cancels to first order (residual measured at 1.09–1.26×).

The comparable perceptual numbers need the latent handover: scripts/mot_predict_windows.py exports predicted latents in the format score_external_predictions.py reads, so that scorer decodes both sides with one decoder. It is also the only route that can settle the tactile comparison, since tactile latent MSE is saturated (≥ 98 % of variance explained for both models) and only a perceptual metric separates them there.

What this comparison cannot tell you

This is a training episode. motherboard_0911_episode_000 is in the train split of the shared split file — for both models. The inference study used it legitimately, because denoising-step and history-source ablations do not need held-out data. But a model-vs-model comparison on it measures how well each fits data it has seen, not how well it predicts. Read the clips as qualitative behaviour, not as a generalization result.
Why not run both on held-out episodes? We can run VT-WM anywhere. Running Cosmos3 needs their cosmos-framework and their VAE package, neither of which is on this cluster, so the only Cosmos3 outputs available are the ones they published — and those are all on this one episode. The held-out comparison that is possible is the latent handover: predicted latents for every val window of all three tasks are exported for vtm_cosmos/scripts/score_external_predictions.py, which decodes both sides with the same decoder. That is the route to numbers that settle anything.