a seeded, interactive, sound-making generative art control room. plain HTML + Canvas + Web Audio. zero dependencies, zero build, zero network.
73 live panels. Each is a classic algorithm from the generative-art / complexity-science canon, dressed as an instrument on a fictional research console. Every panel reacts to the pointer; with AUDIO armed, most of them answer in sound.
Inspired by the "Anthropic's new Fable model is freakishly good" reel by @rndyrbrts — a mood-board-to-code-art workflow where an LLM writes a single-file generative dashboard. This folder was written the same way: described in conversation, generated by Claude, smoke-tested headlessly, iterated.
Open index.html in any modern browser. Works straight from file:// — the modules are plain <script> tags, not ES modules, so nothing needs a server. (Serving it with python3 -m http.server just makes the seed stick in the URL more reliably.)
| where | control | what it does | |
|---|---|---|---|
| header | SEED | click to copy. Same seed = same universe, deterministically. | |
| header | NEW SEED | rerolls everything from a fresh 8-hex seed (written to ?seed=). | |
| header | REGEN ALL | re-derives every panel from the current seed. | |
| header | AUDIO | arms Web Audio (browsers require a click before sound). | |
| header | HALT / RUN | freezes / resumes all simulations. | |
| panel | FOCUS | expands the panel into an overlay; Esc closes. | |
| panel | REGEN | reseeds just this panel. | |
| panel | PNG | downloads the current frame. | |
| panel | pointer | each panel has its own gesture — the hint in the canvas corner says what. | |
Panels outside the viewport pause (IntersectionObserver); prefers-reduced-motion lowers the update rate.
index.html?seed=12B1B2CF.mulberry32(fnv1a(SEED + ":" + panelIndex + ":" + regenCount)).Math.random(). Share a seed, share the room.at-orr/
├── index.html shell: CSS, header, empty grid, script tags
├── README.md / .html this document
└── js/
├── core.js seeded RNG, value noise, audio engine,
│ panel builder, render loop, global controls
├── inst-fields.js lattice instruments (9)
├── inst-agents.js agent instruments (4)
├── inst-geometry.js geometry instruments (6)
├── inst-waves.js wave / oscillator / attractor instruments (8)
├── inst-signals.js signal & chromatic instruments (10)
├── inst-chroma.js chroma wing (10)
├── inst-flora.js flora wing: blooms × rasterizers (4)
├── inst-morph.js morph wing: shapeshifters & misc (8)
├── inst-arcana.js arcana wing: fractals & deep math (7)
└── inst-bureau.js bureau wing: simulations with paperwork energy (7)
Instrument files self-register into the core. To add one:
(function (A) {
A.register({
title: "My Instrument", tag: "MY ALGORITHM",
desc: "One poetic sentence about what it does.",
hint: "drag to do x",
make(rng) { // rng = the panel's seeded PRNG
// build all state here, derived from rng()
return {
chips: [["PARAM", 42], ["LIVE()", () => liveValue]],
step() {/* advance one frame */},
draw(ctx) {/* paint onto a 480×360 2d context */},
pointer(x,y,t) {/* t: "down" | "move" | "up" */}
};
}
});
})(window.ATORR);
Drop the file in js/, add a <script src> line to index.html — FOCUS / REGEN / PNG wire up automatically. Helpers on ATORR: grid(w,h) for ImageData renderers, vnoise(x,y,seed), clamp, audio.blip / swoosh / toneStart.
There is no single catalog these were copied from. Generative art runs on a canon of classic algorithms, published over ~60 years and retold endlessly by the community. Every panel follows one recipe: phenomenon → state + update rule → mapping to pixels → one pointer gesture → one sound → seeded parameters. The knowledge lives in five layers:
1. The closest thing to "a catalog on the internet": morphogenesis-resources by Jason Webb — a curated cheat-sheet of growth algorithms (reaction-diffusion, DLA, differential growth, space colonization…) with links to papers, code, and artists. One bookmark to rule them all.
2. Textbooks: The Nature of Code (Shiffman, free) and his YouTube The Coding Train; Generative Design (Gross et al.); The Algorithmic Beauty of Plants (Prusinkiewicz & Lindenmayer, free PDF).
3. Artists' personal encyclopedias: paulbourke.net (attractors, fractals, geometry), inconvergent.net (differential growth essays), Red Blob Games (hex grids), Tyler Hobbs' essays (flow fields), Sage Jenson (the physarum essay).
4. Primary papers — the per-panel references in the index below. Pearson 1993, Reynolds 1987, Witten & Sander 1981, Werner 1995, Lorenz 1963, Kuramoto 1975… Tutorials are retellings; the papers are the source.
5. Community folklore: demoscene effect tutorials (lodev.org), Fabien Sanglard's write-ups (PSX Doom fire), Kim Asendorf (pixel sorting), and galleries with readable source — OpenProcessing, Shadertoy, r/generative, the awesome-creative-coding list.
How a panel gets designed: pick a phenomenon; write its state and one-step update from first principles (most are short — a lattice, an ODE, a turtle); choose the pixel mapping; tune constants toward the critical regime where behaviour is liveliest; attach one gesture and one sound; route all compositional randomness through the seed. The instrument names and plaque texts are original flavor.
| # | title | algorithm | study it |
|---|---|---|---|
| 01 | Lichen Reliquary | Gray-Scott reaction-diffusion | Karl Sims' RD tutorial; Pearson 1993 |
| 02 | Physarum Chancel | Jeff Jones' slime mould agents | Jones 2010; Sage Jenson's physarum essay |
| 03 | Spiral Concordat | cyclic cellular automaton | Griffeath's primordial soup kitchen; BZ reaction |
| 04 | Glider Vestry | Game of Life + rule variants | Conway 1970; LifeWiki B/S notation |
| 05 | Rule Cathedral | elementary 1-D automata | Wolfram, A New Kind of Science; rules 30/90/110 |
| 06 | Abelian Granary | Bak–Tang–Wiesenfeld sandpile | self-organized criticality |
| 07 | Magnet Conclave | 2-D Ising model (Metropolis) | any stat-mech text; Tc=2.269 |
| 08 | Ant Curia | Langton's ant & turmites | Langton 1986; the highway open problem |
| 09 | Isoline Survey | noise terrain + level sets | marching squares; contouring |
| 10 | Starling Parliament | Reynolds boids | Reynolds 1987; Nature of Code ch. 5 |
| 11 | Frost Ledger | diffusion-limited aggregation | Witten & Sander 1981 |
| 12 | Hyphae Registry | space colonization | Runions et al. 2005, leaf venation |
| 13 | Orrery Annex | softened n-body gravity | symplectic integrators; Plummer softening |
| 14 | Archive Territories | Voronoi + Lloyd relaxation | Fortune's algorithm; centroidal Voronoi |
| 15 | Tile Synod | Truchet arc tiles | Smith 1987; 10 PRINT |
| 16 | Sunflower Minute | Vogel phyllotaxis | Vogel 1979; golden angle 137.508° |
| 17 | Bramble Grammar | bracketed L-systems | Prusinkiewicz, Algorithmic Beauty of Plants (free PDF) |
| 18 | Mercury Chapel | metaballs / isosurface | Blinn 1982; marching squares |
| 19 | Coral Scriptorium | differential growth | Nervous System's Floraform; inconvergent essays |
| 20 | Cymatic Stele | Chladni plate modes | standing-wave eigenmodes |
| 21 | Interference Chapel | wave superposition | Huygens principle; ripple tanks |
| 22 | Weather Station | curl noise flow field | Bridson et al. 2007 |
| 23 | Firefly Synod | Kuramoto lattice | Kuramoto 1975; Strogatz, Sync |
| 24 | Butterfly Ledger | Lorenz attractor | Lorenz 1963 |
| 25 | Pendulum Notary | harmonograph | Victorian harmonographs; Lissajous |
| 26 | Epicycle Scribe | Fourier epicycles | 3Blue1Brown's Fourier video |
| 27 | Smoke Oracle | de Jong attractor | Paul Bourke's de Jong page |
| 28 | Meridian Radar | polar step sequencer | Euclidean rhythms (Toussaint 2005) |
| 29 | Signal Loom | generative timeline / score | Ryoji Ikeda's data scores |
| 30 | Mythic Interface | overdrawn polygon scribble | Vera Molnár, "(Dés)Ordres" |
| 31 | Telemetry Choir | multichannel signal stack | strip-chart recorders; EEG plots |
| 32 | Torus Reliquary | 3-D wireframe projection | perspective projection; demoscene meshes |
| 33 | Census Globe | Fibonacci-sphere dot globe | golden-spiral point distributions |
| 34 | Block Survey | axonometric heightfield | "Unknown Pleasures"-style reliefs |
| 35 | Compression Engine | glitch ops (blt/shift/sort) | pixel sorting (Kim Asendorf); datamoshing |
| 36 | Moiré Choir | ring-grating interference | moiré; Bridget Riley's op art |
| 37 | Glyph Census | mutating bitmap lexicon | 5×7 dot-matrix fonts |
| 38 | Plasma Cathedral | demoscene plasma | oldschool demo effects |
| 39 | ASCII Furnace | character-ramp fire | PSX Doom fire (Fabien Sanglard) |
| 40 | Ember Plenary | particle fountain | particle systems (Reeves 1983) |
| 41 | Hex Dominion | hex-lattice biome map | Red Blob Games' hex grids |
| 42 | Rose Window | N-fold mirrored walker | rosette symmetry groups |
| 43 | Warp Registry | depth-sorted starfield | demoscene starfields |
| 44 | Dune Tribunal | Werner sand-slab model | Werner 1995, eolian dunes |
| 45 | Aurora Veil | noise-driven light curtains | gradient curtain rendering |
| 46 | Transit Concordance | octolinear metro grammar | Beck's 1933 Tube map |
| 47 | Storm Provost | midpoint-displacement lightning | dielectric breakdown (Niemeyer 1984) |
| 48 | Peony Reliquary | bezier-petal bloom × 5 rasterizers | @jesusemans' procedural peony (p5.js) |
| 49 | Dahlia Synod | phyllotaxis florets, halftone | Vogel 1979; Ben-Day dots |
| 50 | Wilt Chronicle | flower life cycle, ASCII | ASCII luminance ramps |
| 51 | Raster Relay | one scene → five renderers | textmode post-processing |
| 52 | Metamorph Corolla | flower morphing in shape, skin & palette | parameter-space interpolation |
| 53 | Orchid Séance | particles possessed by rose curves | rhodonea curves (Grandi) |
| 54 | Cipher Bloom | petals made of type | radial typographic layout |
| 55 | Herbarium Plate | stipple-ink specimen on paper | botanical plates; pointillé |
| 56 | Tidal Ledger | woodblock waves + draggable moon | Hokusai's wave prints |
| 57 | Brutalist Stacks | isometric self-replacing towers | axonometric drawing; brutalism |
| 58 | Gilded Circuit | 45°-routed PCB nets, live signal | PCB routing aesthetics |
| 59 | Light Eels | additive neon ribbons | long-exposure light painting |
| 60 | Julia Drift | Julia set, orbiting c | smooth iteration coloring |
| 61 | Throat of Echoes | tunnel effect | demoscene tutorials (lodev.org) |
| 62 | Feedback Cloister | canvas self-feedback | analog video feedback (Crutchfield 1984) |
| 63 | Supershape Vestibule | morphing superformula | Gielis 2003 |
| 64 | Hilbert Reliquary | animated Hilbert curve | Hilbert 1891 |
| 65 | Agate Bureau | domain-warped noise | Inigo Quilez, domain warping |
| 66 | Pendulum Tribunal | 3 divergent double pendulums | myPhysicsLab equations |
| 67 | Tile Oracle | wave function collapse | Maxim Gumin's WFC |
| 68 | Veil Office | verlet cloth, wind, tearing | Jakobsen 2001 |
| 69 | Granular Assembly | falling-sand automaton | The Powder Toy lineage |
| 70 | Constellation Bureau | star chains + naming | generative skies |
| 71 | Ministry of Strokes | flow-field calligraphy | Tyler Hobbs' essays; sumi-e |
| 72 | Warden Iris | procedural watching iris | radial fiber models |
| 73 | Nocturne Clerk | self-performing score | algorithmic composition |
General companions: The Nature of Code (natureofcode.com, free), The Coding Train, the p5.js examples gallery.
The first 27 instruments live on the green console; every wing after the green console (28–73) deliberately breaks the palette — a light-grey radar with bone-white nodes, ultramarine wireframes, full-RGB glitch buffers, red×cyan moiré, CMYK-ish timeline freight. Each instrument owns its colours; only the typography and chrome are shared law.
Panels 48–51 (and the morph wing's centerpiece, 52) share one pipeline: the subject is drawn each frame into a hidden 240×180 canvas, then sampled on a coarse grid and re-rendered in one of five styles — VECTOR, PIXEL mosaic, HALFTONE dots sized by luminance, ASCII glyphs from a brightness ramp, GLITCH (band offsets, channel swaps, stray glyphs). Model and rasterizer fully decoupled — the architecture behind @jesusemans' peony.
One master gain, throwaway oscillators for blips, filtered noise for swooshes, one sustained sine for the "played" instruments. Two panels are literal sonifications: Cymatic Stele (the sine you hear is the mode shaping the sand) and Sunflower Minute (pitch tracks the divergence angle).
Classic algorithms (see table) → the rndyrbrts reel's "AI as creative-coding compiler" workflow → this folder, generated by Claude (Anthropic) in conversation, June 2026. Do whatever you want with it (MIT-style). Algorithms belong to everyone; the rest is just enthusiasm.