music-video-gen/flow-state/src/scenes/shader
Dejvino e5bb7d77e0 A reproducible migration, and the first eighteen scenes through it
The library is sixty-one scenes, which is too many to convert from memory or
from taste, so the migration is a queue with a gate rather than a judgement call
per file.

Three pieces. A classifier reads each shader and assigns a tier from evidence in
the source — drawn, figure, field, treatment — so two passes over the library
reach the same answer and the work has an order. MIGRATION.md is the recipe per
tier, written to be followed mechanically. And a gate makes the result
verifiable: `consumes` is now a schema field, the lint enforces it in both
directions, and the per-scene battery renders each scene under two deliberately
distant identities and requires the picture to change.

That gate is the part that matters. Without it `consumes` is a comment, and the
whole inversion becomes unverifiable at exactly the point where it stops being
checkable by eye. With it, a scene that declares the cast and ignores it fails.

Eighteen scenes migrated. Four by hand at the drawn tier — Firefly Drift,
Metaballs, Floating Geometry, Prism Bloom — and ten at the field tier by script,
which is one declaration and one wrapped return. All eighteen pass.

The field tier is honestly marginal and the gate says so: every one of the ten
moves by 37 to 39 of 255, against 173 to 255 for the drawn tier, and the
uniformity across ten unrelated scenes is the tell. That is one global
posterisation applying, not ten scenes expressing anything. Cheap, real, shallow.

The decomposition moved from identity being worth 54% of the container to 158%,
but the stage set changed underneath the measurement and part of that is
Metaballs expressing a cast better than Constellation did. What survives the
caveat is the useful finding: a migrated library scene carries the identity
better than a stage written from scratch to carry it. The four bespoke stages
were the wrong shape of effort.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 21:59:24 +02:00
..
analog-wow.js Three glitch scenes: a press, a loop and a tape 2026-08-17 06:55:43 +02:00
apollonian-gasket.js Three geometric scenes, and two ways to strobe a whole frame 2026-08-16 23:44:50 +02:00
aqueduct-march.js Four structural scenes: a span, a well, an arcade and an aisle 2026-08-16 23:25:34 +02:00
aurora-veil.js Phase 10: variety, twelve scenes, and tooling to write the next one 2026-08-05 23:59:20 +02:00
balance-stack.js Four minimal scenes, and a transition control that was reading its denominator 2026-08-16 10:40:23 +02:00
block-mosh.js Phase 10: variety, twelve scenes, and tooling to write the next one 2026-08-05 23:59:20 +02:00
cargo-belt.js Make grain a treatment, tempo a governor, and params commit harder 2026-08-06 07:04:27 +02:00
cell-divide.js Six more visualizers, built through the scaffolder 2026-08-06 00:14:20 +02:00
circuit-bloom.js Side quest 2: give three churning scenes something to develop 2026-08-06 19:51:51 +02:00
classic-wave.js Side quest 1: give four scenes art direction other than grain 2026-08-06 19:35:50 +02:00
contour-map.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
curl-flow.js Side quest 2: give three churning scenes something to develop 2026-08-06 19:51:51 +02:00
data-aisle.js Four structural scenes: a span, a well, an arcade and an aisle 2026-08-16 23:25:34 +02:00
droste-feedback.js Three glitch scenes: a press, a loop and a tape 2026-08-17 06:55:43 +02:00
dust-chamber.js Make grain a treatment, tempo a governor, and params commit harder 2026-08-06 07:04:27 +02:00
eclipse-field.js Make grain a treatment, tempo a governor, and params commit harder 2026-08-06 07:04:27 +02:00
firefly-drift.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
floating-geometry.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
flora.js Add Block Mosh, Neon City and Flora visualizers 2026-08-05 20:31:05 +02:00
gate-corridor.js Epic 2.4: a slow axis, and an honest account of what it fixes 2026-08-06 07:54:35 +02:00
girder-lattice.js Make grain a treatment, tempo a governor, and params commit harder 2026-08-06 07:04:27 +02:00
halftone-misprint.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
horizon-lines.js Side quest 3: fix the Horizon Lines determinism flake at the cause 2026-08-06 19:41:58 +02:00
ink-bleed.js Phase 10: variety, twelve scenes, and tooling to write the next one 2026-08-05 23:59:20 +02:00
isometric-blocks.js Three geometric scenes, and two ways to strobe a whole frame 2026-08-16 23:44:50 +02:00
kaleido-tunnel.js Side quest 1: give four scenes art direction other than grain 2026-08-06 19:35:50 +02:00
karman-street.js Three flow scenes with a still point in them 2026-08-15 22:42:21 +02:00
magnet-lines.js Three flow scenes with a still point in them 2026-08-15 22:42:21 +02:00
metaballs.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
moire-grid.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
mycelium-web.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
nebula.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
neon-city.js Add Block Mosh, Neon City and Flora visualizers 2026-08-05 20:31:05 +02:00
pendulum-trace.js Four minimal scenes, and a transition control that was reading its denominator 2026-08-16 10:40:23 +02:00
pitch-shatter.js Epic 2.5.2: make the framing actually reach the image 2026-08-06 20:18:08 +02:00
plasma-bloom.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
prism-bloom.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
psychedelic-drift.js Phases 8 and 9: shots, and a production design per track 2026-08-05 20:04:33 +02:00
pylon-grid.js Make grain a treatment, tempo a governor, and params commit harder 2026-08-06 07:04:27 +02:00
quasicrystal.js Make grain a treatment, tempo a governor, and params commit harder 2026-08-06 07:04:27 +02:00
rain-column.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
ridge-terrain.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
salt-flat.js Phase 10: variety, twelve scenes, and tooling to write the next one 2026-08-05 23:59:20 +02:00
scale-mosaic.js Three organic scenes: a reaction, a mat and a surface 2026-08-16 10:10:21 +02:00
scan-tear.js Epic 2.5.2: make the framing actually reach the image 2026-08-06 20:18:08 +02:00
shoji-grid.js Four minimal scenes, and a transition control that was reading its denominator 2026-08-16 10:40:23 +02:00
signal-decay.js Side quest 2: give three churning scenes something to develop 2026-08-06 19:51:51 +02:00
silk-ribbon.js Side quest 1: give four scenes art direction other than grain 2026-08-06 19:35:50 +02:00
slow-orb.js Side quest 1: give four scenes art direction other than grain 2026-08-06 19:35:50 +02:00
smoke-column.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
spectrum-sculpture.js Make grain a treatment, tempo a governor, and params commit harder 2026-08-06 07:04:27 +02:00
stairwell-descent.js Four structural scenes: a span, a well, an arcade and an aisle 2026-08-16 23:25:34 +02:00
storm-rift.js Phase 10: variety, twelve scenes, and tooling to write the next one 2026-08-05 23:59:20 +02:00
suspension-span.js Four structural scenes: a span, a well, an arcade and an aisle 2026-08-16 23:25:34 +02:00
synthwave-run.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
tide-rings.js Phase 10: variety, twelve scenes, and tooling to write the next one 2026-08-05 23:59:20 +02:00
time-smear.js Six more visualizers, built through the scaffolder 2026-08-06 00:14:20 +02:00
truchet-fold.js Epic 2.4: a slow axis, and an honest account of what it fixes 2026-08-06 07:54:35 +02:00
turing-bloom.js Three organic scenes: a reaction, a mat and a surface 2026-08-16 10:10:21 +02:00
voronoi-shatter.js Three geometric scenes, and two ways to strobe a whole frame 2026-08-16 23:44:50 +02:00
vortex-drift.js Epic 2.4: a slow axis, and an honest account of what it fixes 2026-08-06 07:54:35 +02:00