1 · Astra (GPT-5.4) · cloud
42.3 KB · three r180 · editorial UI with chapters, island buildings, whitecaps, ship guided in-frame. Not close.
One underspecified Three.js brief — a lighthouse, a storm button, a ship — through two local 2-Spark models and two cloud models. Same scripted interaction recorded on all four. Ranked by eye: Astra, GLM, Fable, DeepSeek.
Panel order matches the labels above. These are headless-browser recordings of the generated code driven by a scripted, identical input timeline — not recordings of model inference. Fixed-step virtual clock at 30 fps, so cadence is honest even where the scene would have run slower live.
42.3 KB · three r180 · editorial UI with chapters, island buildings, whitecaps, ship guided in-frame. Not close.
79,097 output tokens · 59 min · 48.2 KB · three r180 · Gerstner waves, foam, keeper's hut. Best local by a mile.
24.3 KB · three r170 · sparse: small tower, flat dark sea, thin beam.
152,479 output tokens (111,215 reasoning) · 79 min · 47.4 KB · three r170 · water shader present but renders flat.
Prompt, verbatim: "Build an interactive Three.js scene of a lighthouse on a rocky island at dusk, as a single HTML file (CDN imports OK). Orbit/zoom camera, touch friendly. A button rolls in a storm: sky darkens, waves grow, rain starts, the lighthouse beam sweeps. Press again and a ship appears, gets guided in by the beam and docks. Reset clears the weather."
Local arms ran under Hermes at ultra reasoning, uncapped, from fresh sessions. Cloud arms were run by hand in their native apps; no token or timing receipts exist for them, so nothing here is a speed comparison.
Recording: identical scripted timeline on all four (storm → ship → reset), camera rotated to the sunlit face before the clock starts. Local clips are 45 s and freeze on their last frame to fill the 60 s grid. Ship visibility in a panel depends on that camera angle — check the live page before concluding a scene has no ship.
DeepSeek caveat: this lab normally serves DeepSeek V4.1 Flash at TP4. This was a TP2 pack. The flat water might be the quant, might be the model — untested either way. The file is published as-is.
GLM incident, disclosed: its rank-1 Spark hard-wedged mid-prefill on the first attempt and needed a power cycle. The pair was relaunched from fresh containers, requalified, and the prompt resent from a new session. Only the successful run is timed above.
Local-only stacked cut (DeepSeek over GLM, 45 s): download ↓