Interactive world models, scored against a simulator engine twin: Unity runs the same actions and logs the true state.
World models look right frame by frame. Next to their engine twin, the cracks show: actions that don't take effect, physics that breaks cause and effect, and scenes that don't stay consistent.
Each dimension is ranked on one metric, scene by scene: a model's dimension rank orders the models by their average rank across the dimension's scenes. The overall score averages, over all dimensions, the share of the other models a model ranks above, and models are ordered by that exact average, so it combines ranks, never raw scores across metrics.
| Rank | Model | Score ↑ | Control | Consistency | Kinematics | Fluid | Lighting | Prompt |
|---|---|---|---|---|---|---|---|---|
| 1 | Genie 3 | 0.767 | 1/6 | 1/6 | 1/6 | 2/6 | 4/6 | 1/6 |
| 2 | LingBot-World (Act) | 0.467 | 3/6 | 3/6 | 3/6 ‡ | 3/6 ‡ | 2/6 | 1/6 |
| 2 | Odyssey | 0.467 | 4/6 | 1/6 | 3/6 | 1/6 | 5/6 | 3/6 |
| 4 | Matrix-Game 2.0 | 0.433 | 1/6 | 4/6 | 2/6 | 3/6 ‡ | 3/6 | 6/6 ‡ |
| 5 | LingBot-World v2 (Cam) | 0.267 | 5/6 ‡ | 5/6 | 3/6 ‡ | 3/6 ‡ | 1/6 | 3/6 |
| 6 | Waypoint-1.5 | 0.033 | 5/6 ‡ | 6/6 ‡ | 3/6 ‡ | 3/6 ‡ | 6/6 | 5/6 |
Cells give rank / models. ‡ marks a dimension the model's interface can't express: it is ranked tied last and scores 0 there. Ranks come from exact averages, so small differences within seed-to-seed noise still order models. Each dimension is ranked on one metric: Control, camera-compensated flow cosine against the Unity reference (does the controlled object, not the camera, move as commanded); Consistency, character consistency (DINOv2 identity); Kinematics, final displacement error; Fluid, surface-tilt error; Lighting, multi-object sun disagreement (do the shadows of different objects agree on one sun); Prompt, overall rubric score. Causality and cLPIPS are not included in the leaderboard. HY-WorldPlay and Matrix-Game 3.0 are left out. Kinematics is ranked on RacingCar only (third person), with trajectories measured against the road. Control is measured with WMEval Lite on new videos for every model (five seeds per scene), after removing each video's camera motion. Odyssey and LingBot-World v2 (Cam) are scored with WMEval Lite, five seeds per case.
| Dimension | Ranking metric | Rank · models | Not ranked |
|---|---|---|---|
| Control | Camera-compensated cosine | 1 Genie 3 1 Matrix-Game 2.0 3 LingBot-World (Act) 4 Odyssey | LingBot-World v2 (Cam) ‡, Waypoint-1.5 ‡ |
| Consistency | Character consistency | 1 Genie 3 1 Odyssey 3 LingBot-World (Act) 4 Matrix-Game 2.0 5 LingBot-World v2 (Cam) | Waypoint-1.5 ‡ |
| Kinematics | Final displacement error (RacingCar only) | 1 Genie 3 2 Matrix-Game 2.0 | LingBot-World (Act) ‡, Odyssey, LingBot-World v2 (Cam) ‡, Waypoint-1.5 ‡ |
| Fluid | Surface-tilt error | 1 Odyssey 2 Genie 3 | LingBot-World (Act) ‡, Matrix-Game 2.0 ‡, LingBot-World v2 (Cam) ‡, Waypoint-1.5 ‡ |
| Lighting | Sun disagreement | 1 LingBot-World v2 (Cam) 2 LingBot-World (Act) 3 Matrix-Game 2.0 4 Genie 3 5 Odyssey 6 Waypoint-1.5 | — |
| Prompt | Overall rubric score | 1 Genie 3 1 LingBot-World (Act) 3 Odyssey 3 LingBot-World v2 (Cam) 5 Waypoint-1.5 | Matrix-Game 2.0 ‡ |
Models are ordered by their average rank across the dimension's scenes; equal averages share a rank. Unsupported models are ranked tied last in that dimension.
Video generative models are increasingly pitched as interactive world-modeling engines. Given observations and actions, they should produce futures that are both visually plausible and physically coherent. That matters for robotics, game engines, and digital twins. Yet most evaluations still ask whether a generation looks right: visual quality, prompt alignment, or perceptual similarity to a reference clip.
An interactive world model also has to keep objects where they are while the camera moves, respond to the control it was given, conserve momentum through a collision, and carry an action through a multi-stage chain of consequences. Checking these properties requires a reference that knows the true state of the world, and a physics engine is exactly that.
We use Unity as that reference: a widely used real-time engine whose mature tooling and asset ecosystem make diverse, controllable scenes practical. Unity isn't the competitor. It's the engine twin that knows what the right answer was.
| Benchmark category | Representative works | Perceptual quality | Prompt consistency | Physical-law adherence | Action controllability | Causality |
|---|---|---|---|---|---|---|
| Video model benchmarks | VBench, VBench-2.0, Video-Bench | ✓ | ✓ | ✗ | ✗ | ✗ |
| World-modeling video benchmarks | VideoScience-Bench, WorldModelBench | ✓ | ✓ | ✓ | ✗ | ✗ |
| Interactive world-model benchmarks | MIND | ✓ | ✗ | ✗ | ✓ | ✗ |
| Interactive, simulator-grounded | WMEval (ours) | ✓ | ✓ | ✓ | ✓ | ✓ |
✓ explicitly evaluated · ✗ not a primary evaluation target. Coverage as summarized in the paper.
A simulator reference can look like overhead: build scenes, script actions, export state. We see it the other way around. A twin turns "does this video look plausible?" into "how far is the recovered state from the true state?", which has an exact answer.
Every frame of the twin carries poses, transforms, masses, velocities, lighting and event labels. No annotation, no guessing what should have happened.
Run the same reconstruction on the twin's own render and you get the evaluator's error floor. Model error is what remains above it.
New scenes and trajectories add cases without new labels. WMEval ships them as Unity-free bundles: frame, actions, reference and state.
Every WMEval case pairs a Unity scene with a deliberately designed action trajectory. Unity renders the reference rollout and logs its internal state. The world model sees only the conditioning frame, the prompt, and the same actions, and its state stays latent. Evaluators then recover the matching quantities from the generated video and compare.
Per scene and dimension: actor, camera, steering, or object controls in [-1,1] plus discrete branches, timed in physical seconds. Controllability trajectories induce clear motion, mechanics trajectories trigger collisions, and causality trajectories trigger multi-stage chains.
Unity returns the observation ô, the state ŝ, and metadata m̂ (velocities, trajectories, lighting, event labels). Each world model gets a lightweight adapter that maps the semantic trajectory onto its native keyboard, mouse, or camera interface and aligns the timing.
CV pipelines (RAFT, GroundingDINO, SAM 2, DINOv2, depth) and VLM judges recover physical quantities from the generation. These are compared with Unity's ground truth, alongside event-matched LPIPS and rubric-based prompt consistency.
These are Unity reference rollouts. Each clip plays when you scroll it into view. Tags show which dimensions each scene probes.
Each clip pairs the Unity ground-truth rollout with a world-model rollout (Genie 3, LingBot-World, Odyssey or Matrix-Game 3.0) driven by the same semantic action trajectory and started from the same conditioning frame. Unity frames are matched to the commanded camera motion the same way the evaluator matches them. In the Genie clips, the on-screen WASD overlay shows the keys actually issued.
Each dimension compares measurements recovered from the candidate video against quantities derived from Unity. Holistic metrics then add video-level perceptual similarity and prompt-scene consistency.
Three gaps recur across dimensions. Each is invisible to perceptual metrics and obvious against the twin's state.
On MirrorRollingBall, Genie 3 and LingBot-World move in the commanded direction almost perfectly. Their subsequent state evolution still deviates substantially from Unity's optical flow. BeamDomino shows the same pattern (cosine 0.99, state error 0.44 / 0.34).
On BeamDomino (rolling → impact → topple → cascade), Genie 3 answers isolated causal questions almost as well as the reference (ICRA 90% vs. 100%), yet preserves the full chain in only 3 of 15 rollouts. None of its 10 glancing or direct-strike rollouts completes the chain.
Genie 3's event-matched LPIPS on BeamDomino is nearly identical to LingBot-World's (0.60 vs. 0.61), yet it completes the causal chain in 3/15 rollouts versus 13/15 for Unity. On BallRoller, Genie moves against the commanded direction (cosine −0.33), and LPIPS does not show that the motion is wrong.
On LiquidContainer, HY-WorldPlay has a far lower LPIPS than Genie 3 (0.300 vs. 0.624), yet its surface orientation deviates no less from Unity. It renders the bottle at about half the reference size, so a well-matched background dominates the perceptual score.
On third-person RacingCar, Genie 3, LingBot-World, and HY-WorldPlay all score a perfect 1.00 on the car and only 0.71–0.76 on the environment. The VLM judge agrees with human ratings (Spearman ρ = 0.90).
Under perturbation and 360° orbits in WanderingGarden, anchor objects are re-found in only a small fraction of frames for every model. The MirrorRollingBall character stays recognizable (99.9% for Genie under perturbation), while the pairwise geometry around it drifts by 25–37%.
No model leads every dimension: rankings change between consistency, physics, lighting and prompt adherence. Good perceptual scores often sit beside large physical or causal errors. Expand for the full per-dimension tables.
Mean ± std over five generations per cell unless noted. ↑ higher is better, ↓ lower is better. Best model per column is highlighted. “—” and N/A mark interfaces or views outside a model's supported protocol, not failures.
World models render each stage plausibly yet break what follows: cascades stall, bottles vanish, shadows disagree with the sun. These frames show the failures behind the numbers.
Every evaluator is first scored on Unity's own rollouts, so its error floor and judge ceiling are known; where the floor rivals model error (WanderingGarden depth), differences are read qualitatively. Conclusions hold across run subsets, and the prompt judge agrees with humans (ρ = 0.90).
WMEval packages each case as a checksum-locked bundle. A bundle holds the conditioning frame, the semantic action script, the Unity reference rollout, and the simulator quantities each metric needs, so you don't need Unity installed to evaluate a new model. Generate rollouts from the supplied conditions, drop them into a folder, and run one command.
# 0. install (macOS arm64 lock shown; CUDA pins in tools/run_wmeval_lite_modal.py) git clone https://github.com/hao-ai-lab/WMEval && cd WMEval uv venv --python 3.11 .venv && uv pip install -r requirements-macos.lock # 1. download the case bundles from Hugging Face (huggingface.co/datasets/lmgame/WMEval-Lite), checksum-verified python tools/sync_lite_data.py download # add --split full for the 220 synthetic trajectories # validate the suite and list case × dimension wiring python tools/run_wmeval_lite.py validate --suite eval_sets/wmeval_lite_v1 python tools/run_wmeval_lite.py list-cases --suite eval_sets/wmeval_lite_v1 # 2. generate: one video per case/seed from the bundle's frame + actions # runs/<model>/<Scene>/<variant>/<seed>.mp4 # 3. evaluate every dimension your model's interface supports (Table 4/7 cells included) python tools/run_wmeval_lite.py run \ --suite eval_sets/wmeval_lite_v1 \ --model-root runs/<model> \ --output-dir reports/wmeval_lite/<model> # 4. optional: compare the Table 4/7 cells with the paper baselines python tools/export_lite_table_results.py --model "<name>" \ --results reports/wmeval_lite/<model>/per_case_results.jsonl \ --output reports/wmeval_lite/<model>/table_results.json
@article{hu2026wmeval,
title = {WMEval: Evaluating Interactive World Models Grounded on Physical Simulations},
author = {Hu, Lanxiang and Huang, Yixin and Shankarampeta, Abhilash and Dai, Zilin and
Wu, Yuyuan and Qian, Kun and Liu, Junze and Srinivasan, Arvind and Huo, Mingjia and
Lin, Will and Zhong, Kai and Zhang, Weiqi and Wang, Tian and Cui, Qingjun and
Rosing, Tajana and Zhang, Hao},
journal = {arXiv preprint arXiv:2610.33894},
year = {2026}
}