Teardown · Latent world models · rev. 2026-09-22

V-JEPA 2 and 2-AC, taken apart

V-JEPA 2 learns a video encoder by predicting masked video in a feature space it invents. V-JEPA 2-AC freezes that encoder, trains an action-conditioned predictor on under 62 hours of robot video, and plans with it on Franka arms it never saw. This page checks every number against the paper, the released code and the successor, audits the robot evidence trial by trial, and ends in a sixteen-step 3D tour and a research agenda for manipulation and humanoids.

Provenance All shown
00

Corrections before the answers

Fourteen premises that circulate about these models, including three that the previous version of this page got wrong. Each is checked against the paper, the code at commit 204698b, or a named primary source. Tags: Paper the V-JEPA 2 paper, Code the official repository or numbers measured by running it, Context another primary source, Inference and Speculation my own reasoning.

  1. The name is V-JEPA 2-AC. "V-JEPA-AC" does not appear in the paper or the code. Paper §3
  2. "Unlabeled" robot video still carries proprioception. Every DROID frame comes with a 7-D end-effector state (3 position, 3 extrinsic Euler angles, 1 gripper), and each action is computed as the state change between frames. "Unlabeled" means no reward, no task label and no success flag; the 23k trajectories include failures. Paper §3.1, §4.1 fn. 1
  3. The deployed planner looks one step ahead. Every robot number in Tables 2 and 3 plans a single action with 800 samples, the top 10 kept, 10 CEM iterations, then replans. Long-horizon structure comes from sub-goal images a human supplies, not from lookahead in the model. Paper App. B.2, Table 3
  4. The energy is a terminal distance. It is the L1 distance between the predicted representation T steps ahead and the goal representation, not a cost summed along the trajectory. Paper Eq. 5
  5. V-JEPA 2 has no EMA schedule. The teacher momentum is fixed at 0.99925 in both phases. The ramp from 0.998 to 1.0 belongs to V-JEPA 1, and a ramp from 0.999 to 1.0 to the paper's 90k-step "abbreviated" ablation recipe. The previous version of this page stated the V-JEPA 1 schedule for V-JEPA 2. Paper §2.4, Tables 9 and 10 configs/train/vitg16
  6. V-JEPA 2 states no masking ratio, and "about 90%" is not what its sampler does. It reuses V-JEPA's multiblock recipe: a short-range mask (union of 8 blocks, each 15% of the frame) and a long-range mask (union of 2 blocks, each 70%), both spanning the whole clip in time. Running the released sampler on 16-frame 256 px clips: 62% and 81% of tokens masked per clip. The collator then truncates every clip to the batch minimum, so at 24 clips per GPU the encoder sees 25% and 6% of tokens, the predictor targets 47% and 70%, and the rest are neither seen nor predicted. V-JEPA 1 describes the same recipe as "an average masking ratio of ∼90%". The previous version of this page repeated that figure. measured, src/masks/multiseq_multiblock3d.py V-JEPA §3.2
  7. The V-JEPA 2-AC encoder never sees a video clip. Each frame is encoded on its own, duplicated to fill a 2-frame tubelet, giving a 16 × 16 × 1408 feature map. All temporal reasoning in the world model happens in the predictor. Paper §3.1 app/vjepa_droid/train.py, forward_target
  8. The robot evidence is 10 trials per cell. Two labs, one trained model, no seeds, no intervals. The Cosmos baseline ran in Lab 2 only. Paper Tables 2 and 3
  9. IntPhys 2 and CausalVQA are not in the V-JEPA 2 paper. MVP is (44.5 paired accuracy). IntPhys 2 reports V-JEPA 2 in its own companion paper; the CausalVQA paper has no V-JEPA 2 entry. IntPhys 2 Table 2; CausalVQA arXiv 2506.09943
  10. The Epic-Kitchens "prediction" result is mostly encoder semantics. A probe on encoder features alone reaches 39.1 recall@5; adding the predictor's output lifts it to 39.7; the predictor's output alone gives 20.2. Paper App. D.2, Table 20
  11. PerceptionTest 84.0 is not a zero-shot number. It is the test-set accuracy after supervised fine-tuning on PerceptionTest; the other rows of the same table are zero-shot. Paper Table 8 caption
  12. "L1-ball of radius 0.075" cannot give the stated 13 cm step. An L1 ball of that radius caps displacement at 7.5 cm. A per-axis box of half-width 0.075 caps it at 0.075·√3 ≈ 13 cm, which is the figure the paper gives, and the released planner clips each axis, which is a box. Paper §4.1, Fig. 8 notebooks/utils/mpc_utils.py Inference
  13. The released code is not the paper's configuration. The DROID config trains on 8-frame clips (7 teacher-forced steps), not 16-frame clips with T = 15. The released pretraining config mixes three datasets (K710, SSv2, HowTo100M), not VideoMix22M. The released planner samples 400 actions over a horizon of 2 with rotation frozen at zero, not 800 over a horizon of 1. configs/train/vitg16/*.yaml, notebooks/utils/world_model_wrapper.py
  14. A successor exists. V-JEPA 2.1 (arXiv 2603.14482v3, 11 Jun 2026) adds a dense loss on visible tokens, deep self-supervision at intermediate layers, modality-specific tokenizers and a 2B ViT-G. With the same 300M action-conditioned predictor it reports Grasp rising from 60% to 70% at identical planner settings, and to 80% with an 8-step horizon. This page keeps V-JEPA 2 and 2-AC as the subject and flags 2.1 where it changes a conclusion. V-JEPA 2.1 §3.3, Table 6
01

Why predict in a space you chose

The energy view

LeCun's 2022 position paper recasts prediction as an energy-based model: a scalar compatibility E(x, y) that is low when the continuation y fits the context x and high otherwise, with no requirement that it normalise into a density. A joint-embedding predictive architecture computes that energy in representation space. An encoder maps both sides, a predictor carries the context forward under a conditioning variable z, and a distance scores the match. LeCun 2022, §4

E(x, y, z) = D( Pφ(sx, z), sy ),   sx = Eθ(x),  sy = sg(Eθ̄(y))   // V-JEPA 2: z = positions of the masked tokens, D = L1

The argument against pixel prediction is a decomposition. For any predictor ŷ of y given x, E‖y − ŷ‖² = ‖E[y|x] − ŷ‖² + tr Cov(y|x). The second term is irreducible, and in natural video it is dominated by content nothing can forecast: foliage, water, sensor noise, specular highlights. A likelihood objective still hands out gradient in proportion to per-pixel error, so capacity drifts toward the nuisance. A JEPA pays only for what survives the encoder, and the encoder is free to drop what it cannot predict. The paper states the same intuition with "each blade of grass in a field". Paper §1 Littwin et al. (NeurIPS 2024) prove a matching statement for deep linear networks: latent prediction prioritises features with large regression coefficients, reconstruction prioritises high-variance ones. Littwin et al. 2024

The caveat the motivation glosses over. A deterministic predictor trained with L1 converges to the coordinate-wise conditional median of the target features. Moving to latent space removes multimodality only if the encoder maps the distinct outcomes to nearby points, which means it has discarded the stochastic factor. In manipulation that factor is often the one that decides the task: does the cup slip or not. Inference

Step 1 of the tour turns the decomposition into a slider. open step 1 →

What each objective forces the network to model
FamilyTargetWhat it must representFrozen SSv2, same protocolCost to use as a simulator
Pixel reconstruction (MAE, VideoMAEv2)masked pixelslow-level statistics of every pixel, predictable or not56.1 (VideoMAEv2 1B, literature row)needs a decoder; not action-conditioned
Image-text contrastive (SigLIP2, PE)matching captionwhat a caption names; invariant to what it omits, including most motion49.9 / 55.4no predictive model
Image SSL (DINOv2)teacher features of another cropper-frame semantics and geometry50.7no predictive model
Generative video world model (Cosmos, Sora, Genie)future frames or their VAE latentsa full density over future appearancenot reportedCosmos: 4 min per planned action on an RTX 4090
JEPA (V-JEPA 2 ViT-g)its own EMA features of the masked regionwhatever about the region is predictable from its surroundings75.316 s per planned action for 10× the samples
SSv2 top-1 with a frozen 4-layer attentive probe at 256 px, Table 4; the VideoMAEv2 figure is a literature row with a different probe. Planning times: Table 3. Paper Tables 3 and 4

The bet, and what would falsify it

The stated target is to "learn to understand the world and learn to act largely by observation". The recipe splits the learning in two: action-free pretraining on over a million hours of internet video, then action-conditioned post-training on under 62 hours of one robot's logs. Paper abstract, Fig. 1

The split is the central bet because interaction data is the scarce resource. If the representation learned from watching carries the state a controller needs, a small amount of interaction is enough to attach actions to it. Three results would falsify it. First, an action-conditioned predictor trained on the same 62 hours over an image encoder (DINOv2, as in DINO-WM) or a random one matching V-JEPA 2-AC's success would mean the video pretraining is not what carries the result; the paper runs no such encoder ablation for the AC stage. Second, success that scales with robot hours but not with pretraining scale. Third, a behaviour-cloning policy on the same 62 hours matching it. Octo, trained on all of DROID with hindsight goals, loses, which supports the bet but changes architecture, objective and pretraining at once. Inference

02

V-JEPA 2: architecture and pretraining

Encoders and predictor
NetworkParamsWidthDepthHeadsMLPEmbedder
Encoder ViT-L300M1024241640962×16×16 strided conv
Encoder ViT-H600M1280321651202×16×16 strided conv
Encoder ViT-g1B1408402261442×16×16 strided conv
Predictor (pretraining)22M38412121536linear 1408 → 384
Predictor (V-JEPA 2-AC)∼300M102424164096linear 1408 → 1024
Paper Table 12 and §3.1. The pretraining predictor is the same ViT-s for every encoder size. Paper App. A.3

Position enters through a 3D rotary embedding: each head's feature dimension is split into three near-equal segments, rotated by the temporal, height and width index respectively. The paper reports it stabilised training of the largest models, relative to V-JEPA's absolute sin-cos table. Paper §2.1 In code each axis gets 2·⌊⌊dhead/3⌋/2⌋ dimensions, so a 64-dim ViT-g head rotates 20 + 20 + 20 and leaves 4 untouched, and the 32-dim pretraining predictor head rotates 10 + 10 + 10 and leaves 2. src/models/utils/modules.py, RoPEAttention

One pretraining step, with shapes

ViT-g, a 16-frame 256 px clip, the short-range mask, B clips per GPU. |C| and |M| are the context and target counts after the collator's batch-minimum truncation, measured at B = 24.

x               (B, 3, 16, 256, 256)                 # 4 fps, so 4 s of video
Conv3d k=s=(2,16,16) → (B, 1408, 8, 16, 16) → flatten → (B, 2048, 1408)
context  keep C        (B, |C|, 1408)    |C| ≈ 511 short-range, 129 long-range
encoder  Eθ, 40 blocks, 3D-RoPE at each token's (t,h,w)  → (B, |C|, 1408)
predictor linear 1408→384 → (B, |C|, 384) ⊕ mask tokens Δy at M → (B, |C|+|M|, 384)
          12 blocks → keep M → linear 384→1408 → (B, |M|, 1408)    |M| ≈ 953 / 1442
target   Eθ̄ on all 2048 tokens, no grad → LayerNorm → select M → (B, |M|, 1408)
loss     mean |ẑ − z̄|  over M and 1408 channels, averaged over the two masks
Shapes from Table 9 and 12; LayerNorm on targets, the per-mask average and the counts from app/vjepa/train.py and the sampler, run at commit 204698b. Code, measured

The objective and the teacher

minθ, φ, Δy ‖ Pφy, Eθ(x)) − sg(Eθ̄(y)) ‖1,    θ̄ ← m·θ̄ + (1 − m)·θ,  m = 0.99925

Eq. 1 of the paper. Δy is a learnable mask token placed at each dropped position, the loss is taken only over masked positions, and the teacher weights θ̄ are an exponential moving average of the student's. A fixed m of 0.99925 averages over about 1/(1 − m) ≈ 1,333 steps. Paper Eq. 1, Table 9

Why it does not collapse

The prediction term alone is minimised by a constant encoder, so every JEPA needs a mechanism that keeps the representation from going flat. V-JEPA 2 relies on three: a stop-gradient on the target branch, so the target is never pulled toward the prediction; an EMA teacher, a lagged and non-degenerate copy; and an asymmetric predictor, which gives the online branch a degree of freedom the target lacks. Tian, Chen and Ganguli (ICML 2021) show for linear networks that the predictor comes to share eigenvectors with the representation's correlation matrix and that eigenmodes above a threshold grow rather than decay. SimSiam (Chen and He, CVPR 2021) shows stop-gradient plus a predictor suffice without an EMA. None of this is a guarantee: partial dimensional collapse is common in non-contrastive methods. Tian et al. 2021; Chen and He 2021

What V-JEPA 2 shows about collapse empirically: nothing. The paper asserts that the stop-gradient and EMA "prevent representation collapse" and reports no rank, spectrum or variance diagnostic. Paper §2.1

The contrast is with methods that regularise the batch directly. VICReg hinges each dimension's standard deviation above a floor and penalises off-diagonal covariance. SIGReg, used by LeWM, constrains the batch to an isotropic Gaussian by testing 1-D projections against the normal characteristic function (M = 1024 projections, weight 0.1). It removes the EMA, the stop-gradient and the pretrained encoder and trains a 15M-parameter world model from pixels, at a price: every dimension must carry unit variance. On the 2-D Two-Room task LeWM reaches 87% where the other planners reach 97% to 100%, which its authors attribute to SIGReg in very low-complexity environments. LeWM arXiv 2603.19312, §3 and Fig. 6

Step 5 runs a toy linear JEPA live and lets you remove each mechanism. open step 5 →

Masking, measured

Both masks are unions of rectangular blocks that span the full clip in time, so each is a set of tubes. Block size is drawn once per batch (spatial scale 0.15 or 0.7 of the frame, aspect ratio in [0.75, 1.5]) and block positions per clip. The collator then truncates every clip's context and target index lists to the batch minimum. The truncation keeps the first indices in (t, h, w) order, so a heavily masked clip loses its last time slices from the target, and a lightly masked clip loses its last visible time slices from the context. src/masks/multiseq_multiblock3d.py

The released sampler, run 200 batches per setting
SettingTokensMasked per clipEncoder seesPredictedNeither
Pretrain 16 f × 256², short-range, B = 242,04862%511 (25%)953 (47%)28%
Pretrain 16 f × 256², long-range, B = 242,04881%129 (6%)1,442 (70%)23%
Cooldown 64 f × 384², short-range, B = 618,43261%5,534 (30%)9,585 (52%)18%
Cooldown 64 f × 384², long-range, B = 618,43281%2,075 (11%)13,533 (73%)15%
Measured by calling the repository's _MaskGenerator with the Table 9 parameters and the per-GPU batch sizes of the released configs; "masked per clip" is the untruncated union, from a numpy port that matches the real sampler to three decimals. Code, measured

Why tubes: adjacent frames are nearly redundant, so a masked token with a visible copy at t ± 1 can be interpolated rather than inferred. V-JEPA's ablation found multiblock beats random-tube masking at 90%, which produced "features of low semantic quality", and beats causal masking from early frames only. V-JEPA §4 Because the context contains frames on both sides of every masked step, this is spatiotemporal inpainting, not extrapolation: V-JEPA 2 pretraining produces a state encoder, and the explicit predict-the-next-frame objective appears only in V-JEPA 2-AC. Inference open step 3 →

The scaling recipe, ingredient by ingredient

Average of six frozen-probe tasks (SSv2, Diving-48, Jester, K400, COIN, IN1K)
IngredientChangeAverageGainWhere
V-JEPA baselineViT-L/16, VideoMix2M, 90k iterations84.2Fig. 3
Data2M → 22M videos (VM22M)85.2+1.0Fig. 3, Fig. 4 left
ModelViT-L 300M → ViT-g 1B86.7+1.5Fig. 3, Fig. 5 left
Training length90k → 252k iterations, warmup-constant-decay87.5+0.8Fig. 3
Resolution256 → 384 px, 16 → 64 frames, in pretraining and evaluation88.2+0.7Fig. 3, Table 4
Curation (side ablation)uncurated → curated YT1B, ViT-L+1.4Fig. 4 right
Cooldown duration (side)16 → 64 frames at cooldown, 16-frame evaluation+0.7Fig. 5 right
The model-size gain is +1.5 in the text and Fig. 3 and +1.7 in the Fig. 5 caption; the two use different cooldowns. Each ingredient is measured on top of the previous one, with one seed, so the order matters and there are no intervals. Paper §2.2 to §2.4 Inference on order dependence

Data. VideoMix22M samples SSv2 (168k clips, 168 h, weight 0.056), Kinetics 400/600/700 (733k, 614 h, 0.188), HowTo100M (1.1M, 134k h, 0.318), curated YT-Temporal-1B (19M, 1.6M h, 0.188) and ImageNet (1M images, repeated into 16 frames, 0.250). Curation splits YT1B into 316M scenes with PySceneDetect, embeds each scene's middle frame with DINOv2 ViT-L, clusters into 1.5M clusters, keeps the 210k clusters that contain at least one Kinetics, SSv2, COIN or Epic-Kitchens training video, and reweights them toward that target mix, leaving 115M scenes. Paper Table 1, App. A.2, Table 11 Appendix A.2 gives YT1B as 1.4M hours and Table 1 as 1.6M. Paper

Schedule and resolution. A 12k-iteration warmup and a 228k-iteration constant phase at 16 frames and 256 px, then a 12k-iteration cooldown at 64 frames and 384 px with the learning rate decayed from 5.25e-4 to 1e-6, at a global batch of 3,072. Training at 64 × 384 × 384 throughout "would require roughly 60 GPU-years"; the progressive schedule cuts GPU time 8.4×. Paper §2.4, Table 9, Fig. 5

Token counts. A pretraining clip is (16/2)·(256/16)² = 8 · 256 = 2,048 tokens. A cooldown clip is (64/2)·(384/16)² = 32 · 576 = 18,432 tokens, 9× more, so the attention term of each layer costs about 81× more. A V-JEPA 2-AC frame is 1 · 256 = 256 tokens, and the VidQA model at 384 px feeds the LLM 576 tokens per 2-frame tubelet, the 288 per frame the paper quotes. computed from Table 9 and §7.4 open step 2 →

03

What the frozen encoder is good for

The attentive probe, and what it measures

Four transformer blocks with 16 heads sit on the frozen encoder's tokens; the last block replaces self-attention with cross-attention from a single learnable query, and a linear classifier reads the query. Paper §5, App. C.1

A linear probe on pooled features measures what is linearly available in one vector, which undercounts a patch-token model with no class token. Full fine-tuning measures initialisation plus adaptation, and mixes the two. An attentive probe sits between: a small nonlinear reader that may attend anywhere in the token set while the encoder stays fixed. The four-block probe beats a single cross-attention block by 1.4 points on average for ViT-L and 1.0 for ViT-g. App. C.2 Two protocol details matter for comparisons. Each run trains 20 probe heads with different learning rates and weight decays and reports the best, with no separate validation split stated. Jester and Diving-48 read four encoder layers, not one. Table 15, Table 16 open step 7 →

Frozen attentive probes, top-1 accuracy (Table 4)
EncoderParamsAvgSSv2Diving-48JesterK400COININ1K
DINOv21.1B81.150.782.593.483.690.786.1
PE-core G1.9B82.355.476.990.088.595.387.6
SigLIP21.2B81.149.975.391.087.395.188.0
V-JEPA ViT-H600M85.274.387.997.784.587.180.0
InternVideo2s21B87.069.786.497.089.493.885.8
V-JEPA 2 ViT-L300M86.073.789.097.685.186.883.5
V-JEPA 2 ViT-H600M86.474.089.897.785.387.983.8
V-JEPA 2 ViT-g1B87.575.390.197.786.690.784.6
V-JEPA 2 ViT-g384 *1B88.277.390.297.887.391.185.1
Blue columns need several frames (motion), orange ones can be solved from one (appearance). * The headline 77.3 uses 384 px and 64-frame SSv2 clips, a protocol no other row gets; at the shared protocol V-JEPA 2 scores 75.3. PE-core G reaches 89.8 on IN1K with its own probe at 448 px. Paper Table 4 and caption

Why the motion columns favour a JEPA. The target of each masked tube is the feature of a region whose content is determined by the trajectory visible around it, so features that encode how things move are the cheapest way to predict it. Image-text contrastive encoders are trained per frame against captions, which name objects far more often than motions. The pattern in Table 4 fits: V-JEPA 2 leads SSv2 by 20 points over the best image encoder and trails SigLIP2 and PE on K400, COIN and ImageNet by 1 to 4. Inference

Action anticipation (Epic-Kitchens-100)

The context clip ends 1 s before an action; the encoder reads 32 frames at 8 fps, the pretraining predictor is given mask tokens for the frame 1 s ahead, and a probe with three queries (action, verb, noun) trained with focal loss reads both. Recall@5 on actions: ViT-L 32.7, ViT-H 36.5, ViT-g 38.0, ViT-g384 39.7, against 27.6 for PlausiVL (8B), 26.0 for Video-LLaMA and 25.8 for InAViT, a 44% relative gain. Paper §6, Table 5, App. D.1 The probe-input ablation says what that gain is made of: encoder features alone 39.1, predictor output alone 20.2, both 39.7. Accuracy falls sharply as the anticipation time grows from 1 s to 10 s. Table 20, Fig. 18 The baselines are task-specific systems with different backbones and data; none is a frozen-encoder probe. Inference

Video question answering

LLaVA-style alignment: encoder tokens, a projector, an LLM, trained in stages (captioning, image QA, video QA). The controlled comparison fixes Qwen2-7B-Instruct, 18M samples, a frozen encoder and 128 frames, and swaps the vision encoder: V-JEPA 2 ViT-g512 averages 52.3 against 49.1 for PE, 48.1 for SigLIP2 and 45.7 for DINOv2, with its largest margins on MVP, TemporalBench and TVBench, and a narrow loss on PerceptionTest (72.0 against 72.4). Paper §7.2, Table 6 The headline row uses Llama 3.1 8B, the full 88.5M samples, ViT-g384 with an MLP projector and 288 tokens per frame: PerceptionTest 84.0, MVP 44.5, TempCompass 76.9, TemporalBench 36.7, TOMATO 40.3, TVBench 60.6, MVBench 73.5, against PerceptionLM 8B's 82.7, 39.7, 72.7, 28.3, 33.2, 63.5 and 77.1. Table 8

What the comparisons control. The controlled table holds the LLM, data and stages fixed but not the token budget: V-JEPA 2 is pooled 4× to 8×, the image encoders 16×, and visual token counts range from 5,832 to 10,952 per video (Table 21). The headline table compares systems with different LLMs, alignment data and frame counts, and its PerceptionTest entry was fine-tuned on that benchmark while the rest are zero-shot. The defensible claim is the controlled one, and it is a claim about temporal benchmarks. Inference

Physical-understanding probes

On IntPhys 2 (violation of expectation, chance 50%), V-JEPA 2 ViT-H scores 54.0 easy, 58.5 medium, 59.4 hard, 57.5 overall and 56.4 held-out, against human majority votes of 96.2, 97.8, 95.5, 96.4 and 92.4. It is the best predictive model evaluated, and each model's figure is its best of about a dozen hyperparameter runs per column. On the original IntPhys, where V-JEPA ViT-H with RoPE reaches 98.3, V-JEPA 2 ViT-H reaches 87.2. IntPhys 2, Table 2

The gap is not subtle. A frame-feature objective rewards continuity of appearance, which covers permanence and some continuity, but nothing in it penalises two solids passing through each other. MVP's 44.5 paired accuracy leads the 8B class, by 4.8 points over PerceptionLM, and is still far from a solved benchmark. Inference

04

V-JEPA 2-AC: the action-conditioned world model

Post-training setup
Encoder
V-JEPA 2 ViT-g, frozen; each frame encoded alone, 16 × 16 × 1408. The code loads the EMA teacher weights for both context and targets. §3.1 droid-256px-8f.yaml
Predictor
∼300M transformer, 24 layers, 16 heads, width 1024, GELU, block-causal. §3.1
Data
Raw DROID, left exocentric camera only, clips of 4 s at 4 fps, 256 × 256, videos under 4 s discarded: 23k trajectories, under 62 hours. Training on left and right views without conditioning on the camera degraded performance. §3.1, App. B.1
State sk
7-D, relative to the robot base: x, y, z, three extrinsic Euler angles, gripper. §3.1
Action ak
sk+1 ⊖ sk: Δxyz, the extrinsic Euler angles of Rk+1Rk, Δgripper. The repository's example step is Δ = (+9.2, +3.1, +8.4) cm, rotation (−0.017, −0.010, 0.000) rad, gripper 0. droid.py poses_to_diffs; franka_example_traj.npz
Rate
4 fps nominal. The loader strides by ⌈fvideo/4⌉ frames, so for DROID's 15 fps recordings the effective rate is 3.75 Hz and one action spans about 0.27 s of teleoperation. droid.py Inference on the 15 fps source
Optimisation
AdamW, batch 256, weight decay 0.04; learning rate 7.5e-5 → 4.25e-4 over 4,500 iterations, constant for 85,500, decayed to 0 over 4,500. App. B.1

The predictor as a function

k+1 = Pφ( (at, st, zt)t ≤ k ),   zt = LN(E(xt)) ∈ ℝ256×1408,   at, st ∈ ℝ7

Each time step contributes a block of 258 tokens in the order [at, st, 256 patches]. The attention mask lets every token in block t attend to every token in blocks 0 to t, including the action at of its own block, and to nothing later. The patch outputs of block t are read as the prediction of frame t + 1. Patches carry the full 3D rotary position; action and state tokens get only the temporal rotation. ac_predictor.py; modules.py build_action_block_causal_attention_mask §3.1

z        (B, T·256, 1408) → linear → (B, T, 256, 1024)
a, s     (B, T, 7) → two separate linears → (B, T, 1, 1024) each
interleave cat[a, s, z] per step → (B, T·258, 1024)          # T = 16 → 4,128 tokens
24 blocks  block-causal mask, (T·258)² entries, ≈53% allowed at T = 16
drop the 2 conditioning tokens per step → (B, T·256, 1024) → LN → linear → (B, T·256, 1408)
LN again  on the output, to match the LayerNormed targets
From src/models/ac_predictor.py and app/vjepa_droid/train.py (normalize_reps: true). The allowed fraction is (T + 1)/(2T) of block pairs. Code open step 9 →

Teacher forcing plus a short rollout

Ltf = (1/T) Σk=1..T ‖Pφ((at, st, zt)t≤k) − zk+11,  T = 15     Lroll = ‖Pφ(a1:T; s1, z1) − zT+11,  T = 2     L = Ltf + Lroll

Teacher forcing predicts every next frame from ground-truth latents. The rollout term feeds the first prediction back in and supervises the second, so the predictor is differentiated through one recurrent step. Eqs. 2 to 4 In code the rollout starts from [z0, ẑ1], appends ẑ2, and the loss is a per-element mean absolute error over both. train.py, auto_steps: 2

Why so short: each rollout step reruns all 24 layers over a growing sequence and keeps the activations for the backward pass, and gradients through recurrent steps compound. What two steps buy is exposure to the model's own one-step error once, which controls the first-order drift term. Nothing constrains error at step five, which is one reason the planner never asks for step five. Inference open step 10 →

Planning as energy minimisation

E(â1:T; zk, sk, zg) = ‖ P(â1:T; sk, zk) − zg1,   a1:T = argmin E,   execute a1, observe, repeat

The current frame and the goal image are encoded by the same frozen encoder. The cross-entropy method samples each action coordinate from a Gaussian initialised at zero mean and unit variance, rolls every sample through the predictor, keeps the top k by energy, refits mean and variance to them, and after the last iteration returns the mean. Deployed settings: 800 samples, top 10 (an elite fraction of 1.25%), 10 iterations, horizon 1, blocking control that waits for each action to finish. §3.2, Fig. 7, §4.1, App. B.2 In the released planner the end-effector state during a rollout is not predicted: it is composed analytically from the previous state and the sampled action, rotations are sampled as zero, and the refit is smoothed with momentum. notebooks/utils/mpc_utils.py open step 11 →

The one energy landscape in the paper sweeps Δx and Δy over ±5 cm for a reach whose true displacement is (0, −10) cm. The minimum sits near (0, −5) cm, and the energy spans 0.40 to 0.44. Fig. 9 That minimum lies on the edge of the swept square: the figure shows the landscape slopes the right way, not that its minimum finds the true action, and the whole landscape varies by about 10% of its level. Inference

Zero-shot deployment: success out of 10 trials per cell (Table 2)
MethodLabReachGrasp cupGrasp boxReach w/ cupReach w/ boxP&P cupP&P box
Octo110020020702010
Octo210010010701010
V-JEPA 2-AC1100703090808080
V-JEPA 2-AC2100602060708050
Cosmos280020n/an/a00
Franka Panda arms with RobotiQ grippers in two labs absent from DROID, an uncalibrated low-resolution monocular RGB camera, operational-space control, the same weights and code in both labs. Cosmos row: Table 3, Lab 2, 80 samples, 10 iterations, horizon 1, 4 min per action; V-JEPA 2-AC there: 800 samples, 16 s per action; both on one RTX 4090. Paper §4, Tables 2 and 3

Tasks. Reach moves the gripper to the pose in one goal image and ends within 4 cm in all three single-axis tests, with the distance falling at every step. Grasp and reach-with-object use one goal image. Pick-and-place is given two sub-goal images and the final goal: the planner chases the first (object grasped) for 4 steps, the second (object near the target) for 10, and the final for 4. §4.2, Fig. 8, App. B.2 Baselines. Octo starts from octo-base-1.5, trained on Open X-Embodiment, and is fine-tuned on all of DROID with hindsight image goals drawn up to 20 steps ahead, two frames of context and a 4-action horizon; it gets the better of blocking and non-blocking control. Cosmos starts from the 7B continuous-token latent diffusion model and is fine-tuned on DROID with three hand-made fixes (a lower learning rate, no conditioning dropout, noise raised by a factor of e²). §4.1

Where the speed gap comes from. One CEM evaluation of V-JEPA 2-AC at horizon 1 is one forward pass of a 300M predictor over 258 tokens, about 2 · 3×10⁸ · 258 ≈ 1.5×10¹¹ FLOPs. At 800 samples and 10 iterations that is 1.2×10¹⁵ FLOPs per action, which an RTX 4090 at half its roughly 165 TFLOP/s dense BF16 peak finishes in about 15 s, close to the reported 16 s. Cosmos spends 15× the time on a tenth of the samples, about 150× more per sample, because each sample is a multi-step denoising of video latents by a 7B network. V-JEPA 2.1's paper reports the same V-JEPA 2 planner at 3 s per action on an A100; neither paper reconciles the two timings. Inference V-JEPA 2.1 Table 6 open step 12 →

Looking inside. A deterministic ViT-L decoder trained with MSE to map V-JEPA 2 features back to pixels, applied off the shelf to predictor outputs, shows the arm animated and the background kept still; the cup ends slightly low after a rollout, and with an open gripper the cup stays put. App. B.3, Fig. 15 These are single qualitative examples. Inference

Camera sensitivity, measured. For camera positions from about 35° to 85° around the table, the robot makes 201 random x–y moves; for each, the planner infers the one-step action that best explains the next frame. A 2 × 2 least-squares map from inferred to executed actions has condition number ≈ 1.5, so it is close to a rotation; the rotation error grows almost linearly with camera angle, and the mean absolute error is about 1.6 cm on 5 cm moves. Rotating the planner's actions by that map would calibrate it without supervision; the experiments do not. App. B.4, Fig. 16 This is a controllability measurement, and it is the most informative quantitative diagnostic of the world model in the paper. Inference

05

Evaluation audit and limitations

The robot numbers, with the intervals the paper leaves out

Every cell in Tables 2 and 3 is k successes in n = 10. The table below adds 95% Wilson intervals, computed by this page. At n = 10, 60% runs from 31% to 83%, and 60% against 80% is not a separable difference. Pooling both labs gives n = 20 per task for V-JEPA 2-AC and Octo, which is the fairest single number the data allow. computed here

Robot cells with Wilson 95% intervals
Counts from Tables 2 and 3. Trials varied object location and starting pose; per-condition outcomes are not reported. Paper §4.2

Protocol flags

  • One model, no seeds. Each method is one trained checkpoint; no training-seed variance is reported anywhere in §4. §4
  • The camera was tuned for the method. "We manually tried different camera positions before settling on one that worked well across all of our experiments." The baselines were run from the same placement. §4.3, App. B.4
  • Goals are hand-made. Start and goal images, and the sub-goal images for pick-and-place, were composed by the experimenters from the deployment camera. App. B.2, Fig. 14
  • Baseline parity is partial. Octo trains on all of DROID, several times the 23k trajectories, but only with goals at most 20 steps ahead, a different goal distribution from the tasks'. Cosmos gets a tenth of the samples because of its cost and runs in one lab only. The world models use blocking control; Octo gets its better mode. Inference from §4.1
  • Same arm, same gripper class. DROID is a Franka Panda with a Robotiq gripper, and so are both labs. Embodiment transfer is not tested. §4.1 DROID
  • The successor's headline mixes settings. V-JEPA 2.1's "+20 points on Grasp" is 60% for V-JEPA 2 at horizon 1 against 80% for V-JEPA 2.1 at horizon 8; at matched settings the difference is 60% against 70%, one trial in ten. V-JEPA 2.1 Table 6

Which generalisation axes "zero-shot in new labs" actually tests

AxisTested?Evidence
Environment (lab, lighting, background, clutter)yes, 2 labsTables 2 and 3
Objectweaklytwo object types, a cup and a box, not in the training labs
Spatial (object location, start pose)varied, not reported"various permutations to the task across trials"
Instructionnot applicablegoals are images; language goals are future work (§4.3)
Camera viewpointmeasured offline onlyApp. B.4 shows sensitivity; task success at other views is not reported
Embodimentnosame arm and gripper class as DROID
Task horizonnosub-goal images supplied for the only multi-stage task

Four axes for a world model, reported separately

AxisWhat V-JEPA 2-AC reportsProtocol that would settle it
Latent fidelitydecoded frames for one trajectory (Fig. 15); no error curvesopen-loop k-step ‖ẑ − z‖, normalised by ‖zt+k − zt‖ so copy-last-frame scores 1, plus a pose probe on ẑ
Controllabilityinferred-action axis vs camera angle (App. B.4); open vs closed gripper, qualitativeaction-sensitivity ratio; an inverse-dynamics probe on predicted states
Planning qualityone 2-D energy slice (Fig. 9)rank correlation between planner energy and realised distance to goal over executed plans
Task successTables 2 and 3, n = 10 per cell3+ seeds, ≥ 50 episodes per task, Wilson or bootstrap intervals
The normalisation in row one is the minimum fix for latent error being measured in a space the model chose; the pose probe fixes the target so that encoders can be compared. Inference

Why a low latent error certifies nothing

Limitations, stated and inferred

  • Camera position. The action frame is inferred from the image, often without the robot base in view, so the model's axes rotate with the camera. §4.3, App. B.4
  • Long horizons. Autoregressive error grows and the search space grows exponentially with horizon; pick-and-place needs sub-goal images. §4.3
  • Image goals only. Language goals are named as future work. §4.3, §9
  • A non-convex energy with no uncertainty. CEM with 10 elites can lock onto a wrong basin, and a deterministic predictor offers no signal for when its prediction is off-manifold. Inference
  • Slow, blocking, gripper-only control. About 4 Hz at best, 16 s of planning per step, a parallel gripper, rigid objects. Contact transients, deformables and dexterous hands are outside what was tested. Inference

The failure mode worth naming: close in embedding, wrong in the world. The energy is a uniform mean over 256 × 1408 numbers. A cup covers a handful of the 256 patches, so a state where the gripper stands in the right place with the cup beside it rather than between the fingers differs from the goal in perhaps 4 patches, about 1.6% of the terms, which is small next to the 10% dynamic range in Fig. 9. The gripper occluding the cup looks like a grasp; a cup balanced on a finger and a cup held look alike in one frame. The planner is rewarded for matching pixels' features, and physics is only present to the extent those features encode it. V-JEPA 2.1's own failure analysis points the same way: its pick-and-place and grasp failures are gripper timing, closing too early or opening in transit. Inference V-JEPA 2.1 §3.3 open step 13 →

06

Positioning, cost, and the missing experiments

What each system predicts and how it acts
SystemPredictsConditions onActs byRole
V-JEPA 2-ACnext-frame latentsframe latents, 7-D action and stateCEM over its own rollouts, MPCsimulator for a planner
Cosmos 3 (forward dynamics)video latents, decodablevideo, text, a unified action interfacepolicy mode denoises actions and video togetherrenderer, simulator, policy
Genie 3pixels, real timenavigation controls, text eventsan agent or person drives itrenderer, interactive simulator
World Labs Atlaspixels, geometry-groundedtext, images, camera pose, depth; no actionn/arenderer
DreamerV3latents, with a decoderactions; trained with rewards per environmentactor-critic learned in imaginationsimulator inside an RL learner
TD-MPC2latents, decoder-freeactions; reward and value headsMPPI with a learned policy prior and terminal valuesimulator plus planner
DINO-WM, LeWMlatentsactions; per-environment offline dataCEM, MPCsimulator for a planner
π0 / π0.5, OpenVLAactionsimages, language, proprioceptiondirect action chunks (π0) or tokens (OpenVLA)policy
Sources: each system's own paper or announcement; Cosmos 3 and Atlas from my earlier teardowns on this site. Step 15 places them on renderer, simulator and planner axes. Context open step 15 →

What it costs

Pretraining. GPU-hours are not disclosed as a number. The paper puts the full-resolution counterfactual at about 60 GPU-years and the progressive schedule at 8.4× less, which implies about 7 A100-years, some 62,000 GPU-hours, for the 64-frame 384 px ViT-g. derived from §2.4 The released configs run pretraining on 16 nodes of 8 GPUs at 24 clips each and the cooldown on 64 nodes at 6 clips each. configs/train/vitg16

Post-training. Not disclosed; the released config uses 4 nodes of 8 GPUs. Counting a frozen ViT-g forward pass on 16 frames (about 8×10¹² FLOPs) and a 300M predictor trained on 4,128 tokens with a two-step rollout (about 1.1×10¹³), the 94.5k-iteration run at batch 256 comes to roughly 5×10²⁰ FLOPs, on the order of 1,000 A100-hours at 40% utilisation. Caching encoder features removes the first term after one pass. Inference

Inference. 16 s per action on one RTX 4090. A pick-and-place episode of 4 + 10 + 4 = 18 planning steps therefore spends about 4.8 minutes planning; the same episode with Cosmos at 4 minutes per step takes 72 minutes, the "over one hour" the paper reports. §4.2, Table 3

Three experiments a strong reviewer would demand

  1. Encoder ablation at the AC stage. The same predictor and 62 hours over V-JEPA 2, DINOv2, SigLIP2 and V-JEPA 2.1, each frozen, plus V-JEPA 2 fine-tuned, three seeds each, evaluated on Reach, Grasp and pick-and-place with 50 trials per cell. This is the direct test of the paper's central bet. Cost: 15 runs at about 1,000 A100-hours is 15,000 GPU-hours, far less with cached features, plus about 30 robot-days. Speculation
  2. Rollout-loss horizon sweep. Train with rollout horizons 1, 2, 4 and 8; report open-loop latent error at 1 to 16 steps and closed-loop success at planning horizons 1, 4 and 8. V-JEPA 2.1 found longer planning horizons hurt V-JEPA 2 and helped 2.1, so the interaction is real. Cost: 4 runs, 1,000 to 3,000 A100-hours each as rollout memory grows. Speculation V-JEPA 2.1 §3.3
  3. Camera and goal robustness. Five camera positions from 35° to 85°, with and without the App. B.4 rotation calibration, and goal images taken from a different episode; 50 trials per cell. No training required: about 40 hours of planning compute and robot time for 500 episodes. Speculation
07

Concept guide

Fourteen prerequisites, each with a mechanical picture and one line of maths. Click a card for the picture.

08

Interactive tour: one mechanism per step

Sixteen steps, each isolating one mechanism, then a summary. Drag a 3D scene to orbit it; click it and scroll, or use + and −, to zoom. The segment bar under each scene highlights, isolates, hides or explodes a component, and hovering a component names it with its tensor shape. The depth switch changes how much each caption says, never the scene. Arrow keys move between steps when the tour has focus. The colour code is the same in every scene.

Step 1 of 16
Colour code visible context tokens masked target positions predicted latents EMA target latents action tokens state tokens goal embedding
09

Story mode: a cup onto a plate

One continuous run through the tour with a single example. A Franka arm in a lab it has never seen must pick up a cup and put it on a plate, given a photo of the result. Each stop pauses on the step that explains it; open that step in detail, then come back to the story. One premise gets corrected on the way: the paper never does this from the final photo alone.

10

Research directions for physical AI

V-JEPA 2-AC works inside eight assumptions, most stated in the paper and a few implicit in its setup. They hold well enough for a tabletop arm and fail, one after another, as the body gets more hands, more joints, a moving head or a mobile base. The matrix below scores each assumption for five embodiments; tap a cell for the reason. The cards under it are the directions I would fund, each with a first experiment, what would falsify it, and a cost. Everything in this section is my reading: Inference where it follows from the evidence above, Speculation where it goes beyond it.

Which assumptions survive which bodygreen holds · amber strained · red breaks

Tap a cell.

Assumptions A1 to A5 are stated in the paper (§3.1, §4.1, §4.3, App. B.2); A6 to A8 are implicit in its tasks and architecture. Severities are my judgement. Inference see step 16 in 3D →

Where I would start. D1 and D6 first. D1 because the released predictor already has an unused extrinsics token path, so the experiment is a config change plus App. B.4's own protocol, and because every non-tabletop body needs it. D6 because no humanoid will wait 16 s for a step: a latent planner at 1 to 4 Hz feeding a learned whole-body controller at 50 Hz or more is the only architecture I see that keeps the world model in the loop at all. Speculation

11

What is data-faithful and what is schematic

Data-faithful to the paper or the code: every number in sections 00 to 06; the token calculator (step 2); the mask sampler, its statistics and the truncation (3); the shapes and counts in tooltips (4, 7, 9); the EMA equation (5); the ladder values (6); the state and action layouts and the repository's example step (8); the attention-mask structure (9); the CEM algorithm, its defaults and the Fig. 9 minimum and ground-truth markers (11); the sub-goal schedule and timings (12); the audit numbers and intervals (14). Schematic: the pixel-versus-latent toy (1), the grid density in step 2, block sizes (4), the toy linear collapse model (5, a real simulation of a different model), arm, cup and trajectories (8, 12, 13, 16), the latent path and error band (10, from a stated bound with chosen constants), the energy surface shape (11), taxonomy placements (15) and the severity matrix (10).

Checked on 22 Sep 2026 in headless Chromium with software WebGL (SwiftShader), at 1440×900 in light mode, at 1440×900 in dark mode with reduced motion, and at 390×844: all sixteen steps and the summary render; every slider, select, checkbox, segment button, zoom button and segment chip on every step was exercised, as were the provenance filter, concept cards, audit filters, taxonomy, matrix cells and direction filters; story mode ran all fifteen stops; no console or page errors; no horizontal scroll at any width. Not verified: hover tooltips, drag-to-orbit and wheel zoom with a real pointer, and touch orbit on a physical phone.

12

The code, and the sources