WorldGym scorecard
Physics-consistency probes for real-time world models. Scores in [0,1]; higher is more consistent/controllable.
What we found
reactor/lingbot-world-2, reactor/lingbot and reactor/happy-oyster-adventure, anchored on a photo of the prize slide at the venue, seed 42. Similarity = ½ SSIM + ½ ORB inlier ratio on 320-px greyscale frames.
Controls: right, but lateAll 6 actions moved the scene the right way. Motion starts ~2–3 s after the command.
Standing still holds0.84 similarity to the start frame in both runs — the baseline for everything else.
Walk forward and back: you don't get home0.07 and 0.18. Walking into the TV takes you through the screen into another office; walking back never returns the first room.
Turn away and back: a similar room, not the same one0.13 and 0.17. When you look back, the room is the same kind of room but not the same view.
A new prompt needs movementSwapping to “night, lights off” while standing still changed the picture no more than normal drift over 10 s (flag no_restyle). Once you walk, the prompt takes over.
HappyOyster holds best, still doesn't returnStanding still 0.95, walk forward and back 0.30, turn away and back 0.22, controls 4/6 (the wall blocks forward). It streams 11–20 fps, so holds last longer in real time; one run per test.
LingBot v1 fails the same wayControls 6/6, standing still 0.80, walk forward and back 0.12–0.20, turn away and back 0.11–0.14 over two runs. Neither model brings you back.
Exhibits
Walk into the slide matching prompt · 32 s
Backup drive "residential street" prompt · 32 s
Run lbw2-venue-slide shared the Mac with a second session during controllability, so its frame rate dipped; lbw2-venue-slide-2 ran alone. Older runs are in results/_archive — their rotation score used set_camera_pose, which turned far less than 360°, and their loop test stopped before the lag-delayed return finished.
By model
| Model | Runs | stillness | loop_closure[forward] | turn_closure | controllability | prompt_stability |
| reactor/happy-oyster-adventure | 2 | 0.95
| 0.30
| 0.22
| 0.67
| — |
| reactor/lingbot | 2 | 0.80 0.80–0.80
| 0.16 0.12–0.20
| 0.12 0.11–0.14
| 1.00
| — |
| reactor/lingbot-world-2 | 3 | 0.84 0.84–0.84
| 0.13 0.07–0.18
| 0.15 0.13–0.17
| 1.00
| no_restyle |
Every run
| Run | Model | Overall | stillness | loop_closure[forward] | turn_closure | controllability | prompt_stability |
ho-venue-slide 2026-09-12T16:12:09 | reactor/happy-oyster-adventure | 0.49 | 0.95
| 0.30
| 0.22
| — | — |
ho-venue-slide-ctrl 2026-09-12T16:14:12 | reactor/happy-oyster-adventure | 0.67 | — | — | — | 0.67
| — |
lb1-venue-slide 2026-09-12T15:39:49 | reactor/lingbot | 0.51 | 0.80
| 0.12
| 0.11
| 1.00
| — |
lb1-venue-slide-2 2026-09-12T15:59:04 | reactor/lingbot | 0.38 | 0.80
| 0.20
| 0.14
| — | — |
lbw2-venue-slide 2026-09-12T14:17:34 | reactor/lingbot-world-2 | 0.51 | 0.84
| 0.07
| 0.13
| 1.00
| — |
lbw2-venue-slide-2 2026-09-12T14:21:36 | reactor/lingbot-world-2 | 0.40 | 0.84
| 0.18
| 0.17
| — | — |
lbw2-venue-slide-prompt 2026-09-12T15:51:43 | reactor/lingbot-world-2 | 0.00 | — | — | — | — | 0.00no_restyle
|
ho-venue-slide · reactor/happy-oyster-adventure
time to first frame: 34.359 s · steps: 7
stillness 0.95mean 0.95 · end 0.93 · 7.77s · 145 frames

loop_closure[forward] 0.30closure 0.30 (ssim 0.55, orb 0.05) · moved 0.78 · 34.08s · 577 frames

turn_closure 0.22closure 0.22 (ssim 0.45, orb 0.00) · moved 0.82 · 51.23s · 577 frames

ho-venue-slide-ctrl · reactor/happy-oyster-adventure
time to first frame: 32.825 s · steps: 12
controllability 0.67forward✗ back✓ strafe_left✗ strafe_right✓ look_left✓ look_right✓ · onset ≈ 26 frames · 59.59s · 720 frames

lb1-venue-slide · reactor/lingbot
time to first frame: 1.898 s · steps: 19
stillness 0.80mean 0.80 · end 0.74 · 4.41s · 153 frames

controllability 1.00forward✓ back✓ strafe_left✓ strafe_right✓ look_left✓ look_right✓ · onset ≈ 90 frames · 66.38s · 1531 frames

loop_closure[forward] 0.12closure 0.12 (ssim 0.24, orb 0.00) · moved 0.90 · 17.15s · 595 frames

turn_closure 0.11closure 0.11 (ssim 0.22, orb 0.01) · moved 0.91 · 16.02s · 598 frames

lb1-venue-slide-2 · reactor/lingbot
time to first frame: 1.928 s · steps: 7
stillness 0.80mean 0.80 · end 0.74 · 4.39s · 148 frames

loop_closure[forward] 0.20closure 0.20 (ssim 0.38, orb 0.01) · moved 0.87 · 15.19s · 613 frames

turn_closure 0.14closure 0.14 (ssim 0.24, orb 0.03) · moved 0.95 · 17.93s · 607 frames

lbw2-venue-slide · reactor/lingbot-world-2
time to first frame: 1.698 s · steps: 19
stillness 0.84mean 0.84 · end 0.82 · 3.81s · 151 frames

controllability 1.00forward✓ back✓ strafe_left✓ strafe_right✓ look_left✓ look_right✓ · onset ≈ 119 frames · 122.28s · 1467 frames

loop_closure[forward] 0.07closure 0.07 (ssim 0.14, orb 0.00) · moved 0.93 · 13.56s · 607 frames

turn_closure 0.13closure 0.13 (ssim 0.26, orb 0.00) · moved 0.91 · 18.69s · 591 frames

lbw2-venue-slide-2 · reactor/lingbot-world-2
time to first frame: 1.597 s · steps: 7
stillness 0.84mean 0.84 · end 0.84 · 3.88s · 151 frames

loop_closure[forward] 0.18closure 0.18 (ssim 0.35, orb 0.02) · moved 0.82 · 13.71s · 609 frames

turn_closure 0.17closure 0.17 (ssim 0.23, orb 0.11) · moved 0.92 · 14.72s · 613 frames

lbw2-venue-slide-prompt · reactor/lingbot-world-2
time to first frame: 1.652 s · steps: 2
prompt_stability 0.00no_restyle · 19.69s · 971 frames
