isiliconx / spacebunny

spacebunny

A space bunny on the Moon, eight GPU graphics demos, and fifty more self-contained projects — every scene generated procedurally at runtime, no external assets, no network.

Featured

A complete three.js game on the WebGPU backend.

Lunar Hopper — a space bunny exploring a lunar basin

WebGPU · three.js r186

Lunar Hopper

Collect 14 helium-3 crystals across a procedurally eroded lunar basin, then plant the mission flag. Articulated bunny rig, asymmetric lunar gravity, terrain-aware camera, footprints baked as real pits.

play →

Demos

Eight self-contained WebGL2 pieces. Each is a single HTML file with no CDN, no build step, and no network access — open one straight from disk and it runs.

Projects

Fifty more pieces, one per agent. Each is a single self-contained file with its own renderer, controls, and diagnostics.

How it was built

The demos were authored in parallel by a fleet of agents, then verified by rendering each one headlessly and measuring the result.

Rendered, then measured

A screenshot proves something drew, not that it drew correctly. Every demo sets window.__ready when its scene is live, and a small CDP harness waits for that flag, captures the frame, and reports colour count, clipping, and tonal spread. Verdicts are objective.

The bugs had no error messages

An inverted SDF sign collapsed an entire terrain to one flat plane. A pressure solver rendered into the texture it was sampling. sRGB colour values clamped as linear light turned every soft body pure white. All four presented as "looks slightly wrong" and all four were logic errors — only a render could catch them.

Calibrated by measurement

One demo was a featureless white disc. The cause was a 640×400 internal buffer — below one pixel per filament — plus exposure parked on the tonemap shoulder, where small input changes do nothing. A sweep scored candidates on tonal spread rather than brightness. 3,718 → 11,699 colours.

Reusable, not one-off

The verification harness lives in demos/tools/: a zero-dependency CDP renderer, an image health checker, a tiling detector, and a static self-containment audit. Run demos/tools/verify_all.sh to re-verify all eight in about eight minutes.