Golden Ratio Fractal Engine · Build dossier
A pass over the project’s own repository: what is implemented, what is partial, what stayed on paper.
A browser application: React 19, TypeScript and Vite; WebGL2 rendering with optional WebGPU; state kept in localStorage. There is no server side and the build is static.
2 implemented · 3 partial · 1 on roadmap
What the code says
431 fractal type indices (0–430) with no gaps, dispatched from 477 mapper arms
Source
app/src/engine/fractalMappers.ts131 hand-written distance estimators in the WebGL2 shader; the WebGPU dispatch stops at index 130
Source
app/src/shaders/666 palettes = 26 authored + 640 procedural (80 themes × 8 variations)
Source
app/src/palettesProcedural.ts10 render styles, 8 composite operations, 4 camera modes, 4 slice axes
Source
app/src/engine/fractalMappers.tsThe described catalog covers 145 of the 431 types, across 11 category files
Source
app/src/data/categories/Shipped build: 16 files, 1.04 MB, zero external URLs
Source
app/dist
Module state
implemented
WebGL2 core: fragment-shader ray marching
A 4,318-line module holding the march loop and per-index dispatch.
Source
app/src/shaders/webglShaders.tspartial
WebGPU: 131 of 431 types are distinct
Dispatch ends at 130 and falls through to a shared phyllotaxis default; the variant paths have no WGSL equivalent.
Source
app/src/shaders/webgpuShaders.tsimplemented
Lazy shader splicing and a program cache
A per-fractal minimal shader, an LRU cache of 8 programs and in-flight compile dedupe.
Source
app/src/engine/ShaderManager.tspartial
Auto-explore over 61 curated forms
113 eligible ids minus a 52-entry exclusion set; the remaining 318 ids are never selected by the UI.
Source
app/src/engine/NeuroAestheticsEngine.tspartial
Palettes: 26 of 666 are browsable in the interface
Procedural palettes are reachable through auto-selection and hash links, not a browsable list.
Source
app/src/components/ControlsPanel.tsxon roadmap
WebXR, video export, PWA and a mobile app
Phases 6–8 of the whitepaper; no matching modules exist in the source.
Source
app/WHITEPAPER.md
How this was checked
CI gates every push with typecheck, build and two test suites
Workflow chain: npm ci → tsc --noEmit → build → test:unit → test.
The full visual sweep of the catalog is documented
418/431 valid renders, with 13 recorded as intentionally sparse.
A headless render report exists
294/294 combinations (42 forms × 7 styles), 0 black screens, 0 console errors.
The built bundle makes no third-party requests
A scan for http(s) across app/dist returns 0 hits in JS and CSS.
Limits of these claims
- 431 counts indices, not algorithms: the project's own audit collapses them to ~146 distinct mechanisms, and the UI only ever selects indices 0–130.
- Recorded render defects remain: the 4D polytope collapses to a blob and part of the camera-inside-fog group is a framing issue.
- The mobile audit job in CI does not block a push (continue-on-error).
- The 718/1875 assertion totals are CI-executed claims; they were not re-run in this audit.
- The interface is English-only; there is no localisation layer inside the app.
- Per-device performance is unmeasured: a benchmark script exists, saved results do not.
Live build
Live buildswype-imagine.moonsugar.space ↗
The build contains no third-party requests: once loaded the page works offline. WebGL2 is required; WebGPU is opt-in and covers part of the catalog. Audio starts from a user action, never automatically.
The page itself does not confirm availability: the host is checked when the build is published.