From a29499e077e9230412073fd4783f32dcd2762d5d Mon Sep 17 00:00:00 2001 From: Fabian Witt Date: Mon, 29 Jun 2026 08:32:13 +0200 Subject: [PATCH] docs: add llms.txt and llms-full.txt Add machine-readable project descriptions following the llmstxt.org standard so LLMs and agents can understand ANIMA without parsing the site's HTML: - llms.txt: curated index (H1, summary, links to the gallery, codex and all seven worlds with a one-line technical note each). - llms-full.txt: self-contained full description (concept, origin, how to run, navigation, file structure, every world in depth, the codex). Both use absolute URLs on https://anima.fabianwitt.de/ and are served as plain text via GitHub Pages (.nojekyll). Co-Authored-By: Claude Opus 4.8 (1M context) --- llms-full.txt | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++ llms.txt | 28 ++++++++++ 2 files changed, 176 insertions(+) create mode 100644 llms-full.txt create mode 100644 llms.txt diff --git a/llms-full.txt b/llms-full.txt new file mode 100644 index 0000000..51a210d --- /dev/null +++ b/llms-full.txt @@ -0,0 +1,148 @@ +# ANIMA — a cabinet of living things + +> Seven generative worlds, each grown from a few simple rules. Nothing here +> repeats. Pick one, leave it running, and watch it become. + +This is the complete, self-contained description of ANIMA, intended for large +language models and other automated readers. It restates everything an agent +needs to understand the project without parsing the site's HTML. + +- Live site: https://anima.fabianwitt.de/ +- Source: a single static folder — no build, no server, no third-party runtime + dependencies. Every page is one HTML file with relative links. +- Author: designed and built end-to-end by Claude (Anthropic's AI). +- License/credit: handcrafted as a weekend experiment by Fabian Witt's brief. + +## What ANIMA is + +ANIMA is a self-contained, dependency-free exhibition of generative art: a +gallery (the launcher), seven living worlds, a science codex (a field guide), +and a shared navigation capsule that lets a visitor wander between rooms. Each +world is a real-time simulation grown from a few simple rules; it runs forever +and never produces the same frame twice. + +The rendering stack is deliberately minimal: Canvas 2D, WebGL2, and the Web +Audio API in plain JavaScript, with self-hosted fonts. There is no framework, +no bundler, and no analytics. Fonts are self-hosted rather than loaded from a +CDN, so the site is GDPR-safe. + +## How it came to be + +ANIMA is an experiment in autonomous creation. The brief was deliberately +small — a €100 budget and an otherwise free hand. Everything past that line was +designed and built by Claude (Anthropic's AI) working on its own: the idea of a +cabinet, the seven worlds and the rules behind each, the science in the Codex, +the visual language, and every line of code. Consider it a snapshot of what a +curious machine grows into when handed a loose brief and left running — fitting, +for a place full of things grown from a few simple rules. + +## How to run it + +Open `index.html` (the gallery). No build, no install, no server — every page is +a single HTML file with relative links. It runs best in a desktop Chrome / +Firefox / Safari window and also works on mobile. It is an installable, +offline-capable PWA (a web app manifest plus a service worker). To self-host, +drop the folder on any static host; the repository ships a `CNAME`, `.nojekyll` +and GitHub Pages configuration (see `DEPLOY.md`). + +## Navigating the exhibition + +Every world carries a shared nav capsule at the top centre: +"❮ prev · ✦ anima · next ❯", injected by `anima-nav.js`. + +- Left / Right arrow keys jump to the previous / next world. +- "G" or the "✦ anima" label returns to the gallery. +- The gallery's "⟳ surprise me" opens a random world. +- Each world's own controls live in a side panel. "S" saves a PNG snapshot, + "H" hides the UI, and "Space" pauses. Look for the on-screen hint or "?". +- Appending `?debug` to any world's URL exposes a `window.__pump(n)` frame + stepper — an inert verification hook, invisible in normal use. + +## File structure + +``` +anima/ +├── index.html ← ANIMA — the gallery / launcher +├── codex/index.html ← the Codex — the science behind each world +├── anima-nav.js ← shared exhibition nav (loaded by every world) +├── favicon.svg · manifest.webmanifest · service-worker.js +├── og-image.png ← Open Graph / Twitter social preview +├── tools/og-image.html ← generator used to render the social preview +├── primordia/index.html ← 01 · emergent particle life +├── flux/index.html ← 02 · silk woven from a flow field +├── morphogenesis/index.html ← 03 · patterns that grow themselves +├── resonance/index.html ← 04 · a garden that sings in ripples +├── mycelia/index.html ← 05 · a mind without a brain +├── folia/index.html ← 06 · growth that folds in on itself +└── animalcula/index.html ← 07 · small living things that emerge from noise +``` + +## The seven worlds + +### 01 · Primordia — emergent particle life +Coloured species pull and push on one another through an editable interaction +matrix. Out of nothing: cells, swarms, chasers, galaxies. Toroidal space, a +spatial-grid neighbour search (~O(n)), additive glow with motion trails. +Canvas 2D. Seven preset worlds; drag the matrix to rewrite the laws. + +### 02 · Flux — liquid light +Thousands of agents drift along an animated Perlin flow field, each tracing a +thin luminous thread. The result reads as silk, ink-in-water, or aurora. Six +palettes; drag to stir the current, click to bloom. Canvas 2D + Perlin noise. + +### 03 · Morphogenesis — living patterns +A Gray-Scott reaction-diffusion system running on the GPU. Turing patterns — +coral, mazes, mitosis, solitons — emerge and crawl across the dish, with +embossed shading that makes them tactile. Drag to grow life. Seven cultures, +six palettes. WebGL2. + +### 04 · Resonance — a generative sound garden +Click to plant singing seeds. Each pulses and sends out ripples; when a ripple +crosses another seed it chimes and ripples in turn — emergent, ever-shifting +polyrhythms. Pitch follows height, always on a consonant scale. Five scales, +an ambient drone, and reverb. Web Audio + Canvas 2D. (Click once to begin, as +browsers require a gesture before audio can start.) + +### 05 · Mycelia — a mind without a brain +A Physarum polycephalum (slime-mould) simulation entirely on the GPU — over a +million agents, each depositing a trail, smelling the trail ahead, and steering +toward it. With no brain and no plan they weave optimal transport networks: +veins, webs, branching highways. Drag to feed the colony. Five behaviours. +WebGL2, with agent state and the chemical field held in floating-point textures +(1M+ agents on an RTX 4090). + +### 06 · Folia — growth that folds in on itself +The one bright world: a herbarium plate. A closed curve whose nodes repel their +neighbours, hold hands with the two beside them, and sprout new points between +stretched edges — so the perimeter outgrows its space and the line buckles into +folds: brain coral, leaves, convolutions. Dark ink on warm paper. Drag to coax +the growth. Five specimens, four inks. Canvas 2D · differential growth. + +### 07 · Animalcula — small living things that emerge from noise +The flagship: SmoothLife, the continuous ancestor of Lenia and descendant of +Conway's Game of Life. State, neighbourhood and time all dissolve into a smooth +medium, and out of a primordial smear soft self-propelled cells glide, divide, +and die under a fluorescence-microscope dark field. Drag to inoculate the dish. +Four cultures, five stains. WebGL2 · cellular automata. + +## The Codex + +`codex/index.html` is the exhibition's field guide — the real science, history +and mathematics behind each world, with cited sources: Turing's morphogenesis, +Ventrella's Clusters, Perlin's noise, the Tokyo-rail slime-mould experiment, +Nervous System's Floraform, Rafler's SmoothLife, and Chan's Lenia. + +## Notes on quality + +- Accessibility: keyboard-operable controls with visible focus, ARIA labels, + re-enabled pinch-zoom, and `prefers-reduced-motion` handling (gentle chrome; + the gallery composes a static frame instead of animating). +- Performance: the gallery pauses off-screen card previews via an + IntersectionObserver. +- Privacy & PWA: fonts are self-hosted (no Google Fonts CDN, GDPR-safe); links + carry an Open Graph / Twitter social preview; the site is an installable, + offline-capable PWA (service worker + manifest). + +--- + +Handcrafted for a weekend. ✦ diff --git a/llms.txt b/llms.txt new file mode 100644 index 0000000..5cd8299 --- /dev/null +++ b/llms.txt @@ -0,0 +1,28 @@ +# ANIMA — a cabinet of living things + +> A self-contained, dependency-free exhibition of generative art: a gallery, seven living worlds, and a science codex. Each world is grown from a few simple rules, runs forever, and never repeats. Live at https://anima.fabianwitt.de/ + +ANIMA is a static website — every page is a single HTML file with no build step, no framework, and no third-party runtime dependencies (Canvas 2D, WebGL2, Web Audio, and self-hosted fonts only). It is an experiment in autonomous creation: handed a small brief (a €100 budget, otherwise a free hand), Claude (Anthropic's AI) designed and built the concept, the seven worlds and their rules, the science in the Codex, the visual language, and every line of code. + +Each world carries a shared navigation capsule (`anima-nav.js`). Per-world controls: **S** saves a PNG, **H** hides the UI, **Space** pauses, arrow keys move between worlds, **G** returns to the gallery. Appending `?debug` to any world's URL exposes an inert `window.__pump(n)` frame-stepper. + +## Worlds + +- [Primordia — emergent particle life](https://anima.fabianwitt.de/primordia/): Coloured species attract and repel through an editable interaction matrix; cells, swarms, chasers and galaxies emerge. Toroidal space, spatial-grid neighbour search (~O(n)), additive glow. Canvas 2D. +- [Flux — liquid light](https://anima.fabianwitt.de/flux/): Thousands of agents drift along an animated Perlin flow field, each tracing a luminous thread — silk, ink-in-water, aurora. Canvas 2D + Perlin noise. +- [Morphogenesis — living patterns](https://anima.fabianwitt.de/morphogenesis/): A Gray-Scott reaction-diffusion system on the GPU; Turing patterns (coral, mazes, mitosis, solitons) emerge and crawl with embossed shading. WebGL2. +- [Resonance — a generative sound garden](https://anima.fabianwitt.de/resonance/): Plant singing seeds whose ripples chime when they cross other seeds, producing emergent polyrhythms on consonant scales. Web Audio + Canvas 2D. +- [Mycelia — a mind without a brain](https://anima.fabianwitt.de/mycelia/): A Physarum (slime-mould) simulation entirely on the GPU — 1M+ agents deposit and follow trails, weaving optimal transport networks. WebGL2 (state + chemical field in float textures). +- [Folia — growth that folds in on itself](https://anima.fabianwitt.de/folia/): A herbarium plate; a closed curve whose nodes repel, link to neighbours and sprout new points, buckling into folds (brain coral, leaves). Canvas 2D · differential growth. The one bright world. +- [Animalcula — small living things that emerge from noise](https://anima.fabianwitt.de/animalcula/): SmoothLife, the continuous ancestor of Lenia and descendant of Conway's Game of Life — soft self-propelled cells glide, divide and die under a dark-field microscope. WebGL2 · cellular automata. + +## Docs + +- [Gallery / launcher](https://anima.fabianwitt.de/): The hub — an editorial index that opens each world; "⟳ surprise me" opens a random one. +- [Codex — the science behind the cabinet](https://anima.fabianwitt.de/codex/): Field guide to the real science, history and mathematics behind each world (Turing's morphogenesis, Ventrella's Clusters, Perlin noise, the Tokyo-rail slime mould, Nervous System's Floraform, Rafler's SmoothLife, Chan's Lenia), with cited sources. +- [README](https://anima.fabianwitt.de/README.md): Project overview, how to run it, and the structure of the cabinet. +- [Full project description for LLMs](https://anima.fabianwitt.de/llms-full.txt): The complete, self-contained explanation of ANIMA in one file. + +## Optional + +- [DEPLOY.md](https://anima.fabianwitt.de/DEPLOY.md): How the static site is hosted on GitHub Pages.