GitHub - Braffolk/fable5-world-demo: 3D world built by Claude Fable 5 to test its capabilities using three.js · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
Braffolk
fable5-world-demo
Public
Notifications<br>You must be signed in to change notification settings
Fork<br>76
Star<br>478
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>96 Commits<br>96 Commits
docs
docs
reference
reference
shots
shots
src
src
tools
tools
.gitignore
.gitignore
LICENSE
LICENSE
PROJECT_LAAS_v2.md
PROJECT_LAAS_v2.md
README.md
README.md
STATUS.md
STATUS.md
index.html
index.html
package-lock.json
package-lock.json
package.json
package.json
tsconfig.json
tsconfig.json
vite.config.ts
vite.config.ts
View all files
Repository files navigation
LAAS
laas — Estonian for old-growth forest.
Unedited engine output. Every mesh, texture, and light in this frame is generated by code at boot — the repository contains no image, model, or audio assets.
LAAS is a fully procedural 4×4 km open world running in the browser on WebGPU: three.js WebGPURenderer with TSL materials and raw WGSL compute, TypeScript strict with zero any, no WebGL fallback. The entire world is reproducible from a single URL parameter (?seed=N).
The experiment
The goal of this project is to test the capabilities of Claude Fable 5, Anthropic's newest model. This repository was built roughly 99% by the model, with minimal human steering:
The human partially wrote one document: PROJECT_LAAS_v2.md — the brief. It sets the visual bar (UE5-class reference frames), hard floors (triangle counts, system list, world size), and banned outcomes (black shadows, cloned trees, fog as cover). It deliberately does not say how to build any of it.
Everything else was planned and executed by Fable 5 across long autonomous sessions: the architecture, all engine and world systems, the verification tooling, the debugging, the working notes, and this README.
Human input is limited to rare feedback on the things a model cannot judge well from static output: whether motion effects feel right, whether interactive performance holds up, whether an artifact is visible while moving. Examples from the log: wind sway amplitude, walk-camera bob, cloud motion lagging the camera, water coverage taste.
The model does its own QA. It boots the world headless (Playwright driving Chromium with a WebGPU/Metal adapter), takes screenshots, samples pixels, diffs frames against baselines with frame-aligned determinism, profiles GPU passes per encoder, and writes regression probes for the bugs it finds. The diagnosis logs, measurements, and decisions live in STATUS.md, which serves as the model's durable memory between sessions.
Current state: about 21,000 lines of strict TypeScript across 90+ commits, all phases of the brief built, with an ongoing performance pass. Known open issues are tracked at the top of STATUS.md.
What is in the world
Terrain: 4096² heightfield synthesis, pipe-model hydraulic plus thermal erosion, flow-accumulation rivers carving real channels into lakes with outlets, moisture and biome classification, slope- and exposure-driven snow. CDLOD quadtree meshing with crack-free skirts and far-shell detail synthesis to a 4 km+ visible range.
Vegetation: six tree species grown by a procedural branching grammar with per-instance uniqueness (no two trees share a mesh), cluster-card foliage baked from real generated leaf geometry, octahedral impostors, three shrub classes, ferns, flowering plants, deadfall with decay states. Around 190,000 trees and 450,000 understory instances are placed by GPU clustered-Poisson scatter and culled per frame into compacted indirect draws; meadows render roughly a million grass blades.
Lighting: four-cascade shadow maps with PCSS and screen-space contact shadows, a terrain-relative irradiance-probe field for GI, GTAO, screen-space bounce, foliage translucency. A no-black-shadows rule is enforced by automated pixel sampling.
Atmosphere: Hillaire LUT atmosphere driving sky, aerial perspective and light color; raymarched...