A million particles exploding and reassembling between four shapes
A different prompt: one cloud of a million particles has to morph between a DNA double helix, a spiral galaxy, a torus knot and extruded 3D text, and every transition has to scatter outward before it converges. GPT-6 Astra iterated four times inside Codex CLI, with every shape position computed in the vertex shader from simTime.
The on-screen labels are in Chinese: this is the model's verbatim output from an experiment run in Chinese, and editing it would make the artifact something other than what was measured.
How it was made
- Model
- GPT-6 Astra + Codex CLI
- gpt-6-astra
- How
- agent loop
- Codex CLI 0.153.4
- Reasoning effort
- high
- Turns
- 1
- Tool calls
- 23
- Output tokens
- 31.0k
- Wall time
- 10m 9s
- Artifact
- 674 lines, one file
- Error feedback
- none
The black hole prompt tested how complete a single static scene could be. This one tests
the timeline: one cloud of a million particles cycling between four target shapes,
where transitions cannot be straight interpolation — the particles have to scatter
outward first and then converge — and the whole timeline still has to be driven only by
simTime, so a screenshot at a given ?t= reproduces byte for byte.
Four rounds of self-iteration, 23 tool calls. Testing covered all four shapes, the scatter transitions, three palettes, pause and resume, zoom and resize; a million particles and the r170 hooks behave, there are no browser errors and no GLSL errors, and the deterministic screenshot hashes match.
Worth noting is that this class of requirement is a step harder architecturally than
the black hole was: the four sets of target positions have to be computed once on the CPU
and stored in several BufferAttributes, with the blending, easing, scatter and noise
perturbation all moved into the vertex shader. Send a million positions across per frame
instead and the frame rate collapses immediately.
Controls: drag to orbit, scroll to zoom, space to pause, 1/2/3 for palettes.
Parameters like ?t=5 or ?t=11 stop the clock mid-transition, where the scatter is
visible.
Same prompt, other runs
three.js r170 is served from this site, so running a demo makes no third-party request. Published by the author as an individual; testing was self-funded and nothing here represents an employer's position.