A TDZ error blanked the page, and one round of feedback fixed it
Fable 5.1's one-shot attempt died in initialisation on a temporal dead zone error and rendered nothing. Handed back the machine-collected stack trace, it repaired itself in 111 seconds and one round. This page runs the repaired version — which boots, but is nearly all white, and lost the byte-for-byte ?t= contract along the way.
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
- Claude Fable 5.1
- us.anthropic.claude-fable-5-1
- How
- one shot
- Output tokens
- 26.5k
- Wall time
- 4m 55s
- Artifact
- 584 lines, one file
- Error feedback
- 1 round
The one-shot version rendered nothing, because of a temporal dead zone error:
ReferenceError: Cannot access 'fps' before initialization
at updateHUD (index.html:535:20)
at applyPalette (index.html:503:7)
applyPalette() called updateHUD() early in initialisation, and updateHUD() read a
variable that a later let fps = … had not declared yet. Worth crediting: the
__DEMO_ERROR hook it wrote itself worked correctly and put the stack trace on the page.
The error handling was right; the code had a bug.
Then exactly one round of repair, with feedback that was entirely machine-collected —
the real stack trace, __DEMO_READY=false, the console error count, and “the frame is
black apart from the error box”. Nobody told it what to change. 111 seconds later:
__DEMO_READY true, zero page and console errors.
What runs on this page is that repaired version. It introduced two new problems, both left in:
- The frame is nearly all white. A pale blue haze, with no black hole or disk structure visible — worse exposure than the Astra run.
- The determinism contract broke. Two renders at the same
?t=7.5no longer produce the same sha256. The one-shot version was reproducible; fixing the bug damaged either the time lock or the random source.
The particle count is 300,000, the lowest of the three — the other two both report a million. Initialisation takes 25.5 seconds.
Controls: drag to orbit, scroll to zoom, space to pause, 1/2/3 for palettes.
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.