Fractal tunnel: writing raymarch depth so a million points are occluded properly
A KIFS variant of the Menger sponge, with a tunnel carved along a curved path driven by simTime. The hard part is not the fractal — it is making the raymarched surface and a million THREE.Points occlude each other correctly. GPT-6 Astra did it in three rounds inside Codex CLI, first frame in 1.6–2.1 seconds.
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
- 30
- Output tokens
- 30.0k
- Wall time
- 9m 57s
- Artifact
- 593 lines, one file
- Error feedback
- none
The fourth prompt switches to raymarching, and its technical difficulty is specific — the
hardest of the four to get right by luck. A raymarched fractal is solved per ray in the
fragment shader and writes no depth by default; the dust is a million ordinary
THREE.Points going through the normal rasterisation pipeline. For the two to occlude each
other correctly, the raymarch hit distance has to be converted back into depth and written
out. Skip that and the particles float in a sheet in front of the fractal, which anyone can
see is fake.
Three rounds of visual iteration, 30 tool calls. First frame in about 1.6–2.1 seconds under SwiftShader, no JS errors and no GLSL errors, matching hashes for the fixed-time screenshot; pause, parallax, zoom, palettes, downsampling and resize all verified.
The HUD on the poster and the “Into the infinite.” typography were not in the prompt. The difference from the Fable 5.1 run is mostly one of taste: this one leans product-page, with sparser fractal structure and clearer separation, while that one is far denser and feels more like being inside the sponge.
Controls: mouse movement to look around, scroll to adjust FOV, space to pause, 1/2/3
for the three spectra (Ion Bloom, Ember Vault, Glacial Veil), ?t= to freeze the clock.
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.