# Twenty more scenes

The library sat at 42 — seven per family, evenly. Even spread is not the same as
useful spread: casting in `look/Personality.js` disqualifies any scene that does
not honour *all* of the track's signature traits, so the pool a given track draws
from is much smaller than the shelf count suggests. `space` and `shape` are the
thin traits, and they are where a new scene is worth most.

So: twenty scenes, roughly three or four per family, weighted towards `space`
(8 of 20) and `shape` (7 of 20), and each one written against a named neighbour
it must not look like. That second column is the real spec — "no two scenes
render the same image" is a gate with a numeric floor, and a scene that cannot
say what it is *instead of* does not exist yet.

Procedure per scene is `.claude/skills/build-visualizer/`: scaffold, write the
`scene()` body, `npm run lint:scenes`, `checks.html?scene=…`, then the full suite
before the batch commit.

## flow

| # | scene | traits | what it is | not like |
|---|---|---|---|---|
| 1 | Rain Column | camera, space, style | falling sheets of rain in depth layers, sheared by wind | Smoke Column rises and diffuses; this falls and stays discrete |
| 2 | Magnet Lines | shape, camera, style | iron-filing field lines around drifting poles | Curl Flow advects noise; here the field is solved, not sampled |
| 3 | Kármán Street | shape, camera, space, style | vortices shedding off a fixed body, drifting downstream | Vortex Drift spins the whole frame; this has one still obstacle and a wake |

## organic

| # | scene | traits | what it is | not like |
|---|---|---|---|---|
| 4 | Turing Bloom | camera, style | reaction–diffusion spots and stripes, grown in feedback | Ink Bleed spreads and stops; this reaches a living equilibrium |
| 5 | Mycelium Web | camera, space, style | threads creeping over a dark substrate, nodes lighting where they meet | Flora grows upright and symmetric; this is flat, branching and lateral |
| 6 | Scale Mosaic | shape, camera, style | phyllotaxis of overlapping scales, breathing | Cell Divide splits; this tiles a surface that never divides |

## minimal

| # | scene | traits | what it is | not like |
|---|---|---|---|---|
| 7 | Pendulum Trace | camera, style | one harmonograph curve drawn into a slowly decaying trail | Silk Ribbon is a wide ribbon; this is a single hairline and its ghost |
| 8 | Contour Map | camera, space, style | sparse topographic contours of a slow height field | Horizon Lines is a parallel bundle; contours are closed and nested |
| 9 | Shoji Grid | shape, camera, style | backlit paper panels with the signature form cut out of them | Moiré Grid interferes; this has four or five panels and holds still |
| 10 | Balance Stack | shape, camera, space, style | a few forms stacked on a horizon, long shadows | Salt Flat has one distant object; this one is near and about to fall |

## structural

| # | scene | traits | what it is | not like |
|---|---|---|---|---|
| 11 | Suspension Span | shape, camera, space, style | cable curves and towers passing overhead | Girder Lattice is a truss field; this is two curves and a rhythm of hangers |
| 12 | Stairwell Descent | camera, space, style | a recursive stairwell seen straight down | Gate Corridor moves through gates; this falls through floors |
| 13 | Aqueduct March | shape, camera, space, style | receding arches, tiered | Pylon Grid is open frames; arches are solid and carry a skyline |
| 14 | Data Aisle | camera, space, style | two racks of indicators receding to a vanishing point | Neon City is exterior and vast; this is interior and close |

## geometric

| # | scene | traits | what it is | not like |
|---|---|---|---|---|
| 15 | Voronoi Shatter | camera, style | drifting Voronoi cells, edges lit, re-seeding on phrase lines | Truchet Fold is a regular grid; these cells are irregular and move |
| 16 | Apollonian Gasket | camera, style | circle-inversion packing, infinitely nested | Quasicrystal is additive interference; this is exact recursive geometry |
| 17 | Isometric Blocks | shape, camera, style | an isometric field of extruded blocks rising on band energy | Floating Geometry drifts free; this is a solid, gridded, lit surface |

## glitch

| # | scene | traits | what it is | not like |
|---|---|---|---|---|
| 18 | Halftone Misprint | camera, style | CMY halftone screens, misregistered | nothing else in the library draws dots |
| 19 | Droste Feedback | camera, style | recursive zoom-and-rotate video feedback around a small motif | Time Smear translates; this scales, so the image eats itself |
| 20 | Analog Wow | camera, style | tape warp: horizontal wobble, chroma bleed, dropout streaks | Scan Tear and Block Mosh are quantised and blocky; this is continuous and wet |

---

## What landed

All twenty, in six commits, each batch gated before it went in. The library is
at **62 scenes**: flow, organic, geometric and glitch at ten each, structural and
minimal at eleven. `space` went from 20 scenes to 28 and `shape` from 21 to 28,
which was the point — those are the traits that decide whether a track has
anything to cast.

Three things came out of the build that are worth keeping:

**A slow axis needs a large, low-frequency area, not a detailed one.** Phase 11
compares ten-second averages, and the camera's own drift moves that average by
0.01-0.02 on any high-contrast image. An axis that changes line count, drop
density or tier count loses to it; one that changes a wake's width, a colony's
extent, a tide level or a deck's height beats it. Seven of the twenty declare an
axis. Six do not, and each of those files records the candidates measured and
what they scored — Turing Bloom, Voronoi Shatter, Droste Feedback and Analog Wow
because a feedback or re-cutting scene's own history moves the average further
than any parameter can, Contour Map and Balance Stack because the frame is too
empty for anything in it to out-move a slow pan.

**Two ways to strobe a whole frame, both found by the flash gate.** Driving block
heights off the low end made every tower in Isometric Blocks grow together — a
frame-wide luminance cycle on the kick, 4/s. A hard recursion cutoff in
Apollonian Gasket popped a whole generation of discs in and out as the fold
crossed it. Local terms and a faded cutoff fixed both.

**Style expressed only as grain is not style.** Six of the twenty first shipped
with a style response the render gate measured at 11-24 out of 255 — the Side
Quest 1 complaint, reproduced from scratch. Putting the track's line weight and
edge softness into the actual subject (the dot, the ring, the seam, the course,
the band boundary) took them to 86-255.

One check changed: Phase 4's transition control is the sum of the two adjacent
shots' motion rather than the larger of them. See the commit; the short version
is that a dissolve has both stacks live and a nonlinear blend of two moving
stacks moves more than either alone, so the old control was reading its own
denominator once the library had calm scenes in it.
