Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 148 additions & 0 deletions llms-full.txt
Original file line number Diff line number Diff line change
@@ -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. ✦
28 changes: 28 additions & 0 deletions llms.txt
Original file line number Diff line number Diff line change
@@ -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.
Loading