Event horizon in one shot: a million-particle black hole
One call, no human edits: GPT-6 Astra returned 1,230 lines of single-file HTML — a million particles, a custom GLSL accretion disk, UnrealBloomPass, zero console errors, and screenshots that reproduce byte for byte once ?t= locks the clock. The defect is still in it: bloom washed the event horizon white.
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
- us.openai.gpt-6-astra
- How
- one shot
- Reasoning effort
- high
- Output tokens
- 15.3k
- Wall time
- 3m 1s
- Artifact
- 1230 lines, one file
- Error feedback
- none
The prompt asked for something machine-checkable, not something pretty: one file,
only APIs that exist in three.js r170, at least 200,000 particles in a THREE.Points
with custom GLSL, EffectComposer plus UnrealBloomPass, OrbitControls, animation
time driven by a simTime variable so ?t=3.5 can freeze a frame, and a fixed-seed
mulberry32 PRNG rather than Math.random().
This is the raw output of a single call, with nothing edited by hand. It pushed the
particle count to a million on its own — the prompt asked for 200,000 — and added a
FRAME LOCK / t = 7.50 s HUD plus decorative “SGR / 0001 / GRAVITATIONAL LENSING”
type in the corner, none of which was requested. Verification: __DEMO_READY true,
__DEMO_ERROR null, zero page errors, console errors and failed requests, and two
renders at ?t=7.5 producing the same sha256.
The defect is preserved too. Mean luminance across the frame is 0.41 with 95.8% of pixels non-black: bloom washed the centre out, so the event horizon that should be pure black is not visible at all. Feeding the screenshot and its pixel statistics back for a repair would work — but that measures something else, which is exactly what Astra + Codex CLI in this set is.
Controls: drag to orbit, scroll to zoom, mouse movement adds parallax, space pauses,
1/2/3 switch palettes. Adding ?t=7.5 freezes the clock, which is how the
screenshots reproduce.
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.