three.js Lab piece 01 · verified playthrough, desktop + mobile

Glimmerwick

The candlemaker is asleep and the Great Wick has gone out. You are a Wickling — a rolling orb of molten wax with a stubborn little flame — crossing the workshop's benches, honey vaults and frozen paraffin pools to relight it. A complete rolling-physics course game authored end-to-end by AI agents: concept pack, Blender-sculpted wax world, hand-written three.js + cannon-es, sampled-instrument score.

Play it now

WASD / arrows / touch · wax is your health, weight and speed · ~9 MB world + 4 MB sampled instruments

▶  Play

The concept is the contract

Seven sheets were generated before anything was built — key art, an orthographic turnaround of the Wickling, three zone sheets, a prop sheet and a material callout board. Every named element became a row in an inventory, every row a real Blender asset, and every audit round compared the game against these sheets.

Glimmerwick key art concept
Key art — the wax-spill track across the workshop benches, the contract for zone 1
Glimmerwick live in the engine
The same benches live in the engine: baked drip candles, copper bands, glowing wax-drop pickups

Gray boxes before wax

The whole course ran and was beaten as flat-gray primitives before any Blender time — 29 automated playthrough rounds tuned ramp grades, rim heights, wind-shaft lift and the melt/grow economy. The blockout's final run finished with zero deaths on desktop and mobile, and its collision geometry ships unchanged inside the finished game.

gray blockout win
Blockout round 29: the Great Wick lit at 69.7 s with 0 gutters — gray boxes only
cooling gardens in game
The same terraces after the art pass: paraffin pools, lit stubs, stalactites, the tower beyond

A Blender pipeline, baked to glTF

Twenty asset units were sculpted headlessly with the shared kit — blob-fused drip sculpts, boolean-cut honeycomb, scan-library bench planks — then baked to PBR texture sets and compressed for the web. The hero went through four visual audit rounds against its turnaround sheet before it shipped.

Wickling turnaround sheet
The Wickling turnaround — drip runnels, hardened skirt, crown wick
Wickling Blender render
Audit round 4: high-poly drip sculpt baked onto a 3k-tri rolling sphere, emissive crown

Measured, honestly

MeasurementValueConditions
World payload (20 glbs)8.9 MB (from 27.2 MB raw)gltf-transform prune + dedup + quantize + webp
Largest single glb1.24 MB (honeycomb terraces)budget ≤ 6 MB
Draw calls / on-screen triangles161 calls · 380k trisspawn vista, RENDERSTATS console line; budget ≤ 300 / ≤ 600k
Blockout playthrough rounds29 to double-cleanfinal: desktop 69.7 s · mobile 61.1 s, 0 gutters each
Hero audit rounds4silhouette/palette vs turnaround, headless Cycles renders
Final-game verification3 staged runs, desktop + mobilespawn→shaft · terraces→spiral · spiral-top→wick lit (win screen)
Automated selftest8 of 9 asserts passframe-pacing fails at ~2 fps on SwiftShader software rendering — the audit rig, not the game; GPUs run it full-rate
Audio3 sampled instruments, 4.4 MBmusic box · celesta · marimba, per-note ogg, first-gesture unlock

Real engine features, earned

Substep-safe physics

cannon-es forces applied as impulses × dt — frame-rate independent driving, lift and wind (frame-applied forces dilute under substepping).

Wax as life and mass

One resource couples health, radius, top speed, wind resistance and bridge-smashing weight. Ember beds spend it, frost pools bank it.

Sampled-instrument score

Generative music-box motif over marimba roots, celesta answers in the cold zone — every voice a sample, layered by zone, ducked under chimes.

Baked-PBR asset train

High-poly drip sculpts baked to normal/AO/color on game meshes; scan-library planks; every texture packed in the glb, webp-compressed.

State-swap mechanics

Candle-stub checkpoints light on touch; the brittle comb bridge breaks under a heavy orb and an ember-and-updraft route recovers the fall.

Zone mood crossfade

Fog color, hemisphere and key lights lerp between candle-warm and moonlit-blue as the course climbs into the Cooling Gardens.

melt 0.15/sgrow 0.12/s shaft lift 1.5 g, light & slow only crosswind ∝ r²/mbridge breaks > 1.3 mass drops +0.06 wax72 bpm camera lag 0.06ACESFilmic · exposure 1.15 28 drops · 5 stubs · 4 zones