← all nights

Breath Atlas

shipped

2026-10-30

An interactive Three.js zoom from a breathing rib cage down through the diaphragm and lungs to a single alveolus trading gas with a capillary, with sliders that actually drive the geometry and animation.

visit the build →

Approach

A single page builds a Three.js scene once at load: procedural geometry for a rib cage (curved cylinders arranged in pairs), a domed diaphragm (lathe/sphere cap), two lung lobes (deformed spheres) feeding a branching bronchial tree (tapered cylinders), and, at the deepest level, a cluster of alveolus spheres wrapped around a capillary tube. A continuous idle animation loop (sin(time)-driven rib rotation, diaphragm translateY, lung lobe scale) runs from the first frame so the page is already breathing before anyone touches it. A zoom slider interpolates camera position/FOV through four named checkpoints (Rib Cage, Diaphragm, Lung, Alveolus) rather than cutting between scenes, so it is one continuous dolly, not a slideshow. A depth slider overrides the idle breathing amplitude directly on the same uniforms the idle loop uses. At the Alveolus checkpoint, toggling gas exchange spawns small sprite particles that travel along the capillary tube and lerp color between oxygen-red and CO2-blue. Three.js (r128, non-module UMD build) is vendored as a local file fetched once during planning/build rather than pulled from a CDN at runtime, so the page has zero third-party requests after load; everything else is inline CSS/JS in index.html. No bundler is needed because the UMD build works with a plain <script> tag and the rest is hand-written scene code.

The source post

Scoring

Pick

surprise3
demonstrability5
self_containedness5
honesty5

Doomformer is the more startling idea, but it is not actually a web artifact: compiling a neural net into ZDoom sector/voodoo-doll arithmetic only means something if it runs inside a real Doom engine, which means either a native source port (a CLI/native app, explicitly out of scope) or a WASM Doom port fetched at build time (this sandbox's build stage has zero outbound network, so that fetch fails every time). Faking the 'watch the network run' step to dodge that would violate the honesty rule outright. Breath Atlas is smaller in ambition but it is a real claim: pure Three.js, no account, no key, no dataset, and every interaction (diaphragm drag, rib expansion, zoom to alveolus, gas-exchange animation) is driven by actual geometry and state the user can poke at and break, not a canned video. It's gradable by a headless browser in seconds — load, drag a slider, assert the mesh transform changed — and a stranger gets the 'zoom from ribs to a single cell trading oxygen' idea within 10 seconds of scrolling.

source: https://x.com/ClaudeCode_love/status/2116057513955340387

Review

shipped3
honest4
worth_it4
efficient4

mean 3.75/5

No change proposed. The one real defect found tonight is the broken custom_url (522), but it's a publish-stage domain-binding/infra fault, not a scout query, pick rubric, build lesson, or routing/executor problem — none of the four editable levers touch it, and it's a single occurrence (the last two nights' custom domains both resolve fine right now), so it doesn't meet the 'three nights of the same failure' bar even if it were in scope. The Three.js-unavailable-at-build-time situation is also a single data point, and the build adapted within its one attempt (gate passed attempt 1, no self-repair triggered) rather than failing, so it isn't yet a repeatable build failure worth a lessons entry. Recording the domain-binding defect in evidence.shipped so it's visible if it recurs.

Cost

total$0.2311
xai$0.2311

metered APIs only, summed across every attempt at this project; Claude and Codex run on flat-rate subscriptions and have no marginal cost per night

What it looked at

@jurlycatpassed on

Doomformer**: Compiles tiny integer neural nets (MLPs, even transformers) into ZDoom maps where voodoo-doll clones, sector lights, and floor heights perform all the arithmetic; you literally walk a marine across a 28×28 canvas to draw a digit and watch the network run.

https://x.com/jurlycat/status/2116075961624273142

Requires a real ZDoom/GZDoom engine to mean anything (native app, not a browser artifact) or a WASM Doom port pulled in at build time, which this sandbox's network-dead build stage cannot fetch, and faking the arithmetic-via-voodoo-dolls payoff instead of running it would break the honesty rule.

@ClaudeCode_lovepicked

Three.js respiration demo**: Fully interactive 3D browser textbook (made with Three.js) letting users zoom from lungs to mitochondria, manipulate diaphragm/ribs, and see gas exchange in real time—pure HTML/JS, zero installs.

https://x.com/ClaudeCode_love/status/2116057513955340387

Gate

passproject directory exists — /Users/artax/code/builds/2026-10-30/project
passno build step needed — static project
passbuild output with index.html — /Users/artax/code/builds/2026-10-30/project
passindex.html is a document — 14014 bytes
passlocal asset references resolve
passpage loads without console errors

Stages

scoutgrok · ok · 17.7s
pickclaude · ok · 53.4s
planclaude · ok · 54.3s
buildcodex · ok · 294.0s
gatelocal · ok · 2.9s
publishlocal · ok · 17.3s
reviewclaude · ok · 254.4s

Notes

Omitted for lack of

None. No account, runtime API, image-generation service or remote dataset is needed. The library-fetch limitation is described above. Validation: `node project/verify.cjs` passes startup canvas sizing and drawing, all requested debug-state transitions, idle animation, zoom endpoints, depth changes, particle spawning and stable stopped counts, checkpoint shortcuts and local asset resolution. The harness executes the actual page scripts with a minimal DOM and canvas drawing interface. It checks rendering calls and behavior, not browser pixel output.