how-bench · fal-ai/flux/dev · seed 302 · its prompt ↓
How this was built.
One person, working with agents. The domain was registered on 18 August 2026. Below: the clock, every prompt, and every commit.
01 — the machine
The clock and the scheduler
Nothing on this page waits for sound. A single animation frame loop keeps the bar, and audio — when you ask for it — locks to that same clock rather than the other way round.
The visual clock
src/js/transport.js starts one requestAnimationFrame loop when the file is evaluated, before anything on the page has been clicked. Each frame it takes the elapsed milliseconds, divides by the beat length, and keeps the remainder against five: phase = (nowMs / beatMs) % 5. When the whole-beat part changes it dispatches a beat event; it also floors phase × 4 and dispatches a sub event on every sixteenth. Everything visual on the site — the ring, the counter, the pads, the scopes — listens to those two events or reads bus.phase directly. No visual code path touches an AudioContext.
The defaults are in the file, not in this paragraph: DEFAULT_BPM = 96, BEATS_PER_BAR = 5, CYCLE_BEATS = 20, tempo clamped between 40 and 220. At 96 BPM a beat is 625 ms and a bar is 3.125 s; the twenty-beat cycle, four bars of five, is what the square in the ring realigns on.
The look-ahead scheduler
There is no AudioContext on this page until you make one. It is constructed inside startAudio(), which is only ever called from a click handler on a labelled Play control. There is no autoplay and no unlock-on-any-tap.
Once it exists, two numbers do the work, and they are both constants at the top of the audio half of the file: LOOKAHEAD_MS = 25 and SCHEDULE_AHEAD_S = 0.10. A setInterval wakes the scheduler every 25 ms; each time it wakes it runs while (nextNoteTime < ctx.currentTime + 0.10) and queues every beat that falls inside that 100 ms window, advancing nextNoteTime by one beat each time round. The notes themselves are placed with osc.start(time) and gain.setValueAtTime(v, time) against the audio clock, so the jitter in setInterval decides only when work is queued, never when a sound happens.
Accented beats are scheduled at velocity 1 and the rest at 0.72. Five voices — kick, rim, hat, ping, sub — are built from oscillators and a one-second noise buffer through a biquad and a gain envelope, each with its own AnalyserNode at fftSize 512. That analyser is what /kit draws; the trace there is the real signal, not a picture of one.
Why the two clocks never argue
At the instant audio starts, the transport records audioAnchor = { ctxTime, offsetMs } and the frame loop switches its time source from performance.now() to ctx.currentTime. The audio clock becomes the master, so the lit arc and the struck note cannot drift apart. Pausing releases the anchor and re-bases the visual clock from where the audio clock had got to, so the ring keeps running at the same position with the sound switched off.
One bar, drawn to scale, from the live transport
The narrow band ahead of the playhead is the 100 ms schedule-ahead window at true scale. Anything it touches has already been queued; the playhead arriving is the moment it sounds.
- Tempo
- 96 BPM
- Beat
- 625 ms
- Bar
- 3.125 s
- Look-ahead interval
- 25 ms
- Schedule-ahead
- 100 ms — 3.2% of the bar
- Position
- beat 1 of 5
- Cycle
- 01 / 20
- AudioContext
- none — created only when you press Play
02 — the pictures
Every image and the prompt that made it
Model, seed, size, prompt and post-processing for every generated image on the site, next to the image it produced. The ones that failed are here too.
Twenty-four entries, generated from docs/assets.json — the same manifest the generation script read. Every seed, prompt, post-processing step, measurement and provenance note below is printed from that file rather than retyped, because the last hand-written version of this list went stale the moment the palette changed and spent a day claiming seeds that no longer existed. Every image on this site came from fal-ai/flux/dev at a fixed seed; nothing was drawn, stock-sourced or retouched beyond the post-processing named in each row. Where a row shows a derived file — a rotated frame, a quadrant of a plate, one of five approved pilots — the caption says so.
Each row also names its source. The site was repainted from a warm tungsten palette to five saturated stage gels, and the three ways an image got its colour are not equivalent: generated means a new submission under a gel prompt, pilot reuse means an approved pilot promoted into a slot, and recoloured means the original file relit in PIL with no new submission. A recolour is cheaper and it is also weaker — two of them are disclosed below as a known limitation rather than presented as gel photography.
-
Shown: hero-membrane.webp — the shipped file, promoted from the approved magenta pilot. hero-membrane
Extreme close-up of a completely blank unbranded snare drum head raked by a hard theatrical stage gel of intensely saturated hot magenta, vivid magenta pink light flooding the entire frame, high chroma neon pink, the plain coated drumhead glowing electric pink with no printed markings of any kind on its surface, deep black falloff at the edges, dust particles suspended in the hard magenta beam, concert stage lighting, photographic. Absolutely no text, no letters, no words, no numbers, no logos, no brand marks, no maker's marks, no printed badges, no watermarks. No warm tungsten, no beige, no bone white, no sepia, no brown, no warm neutral colour grade.
- Source
- Pilot reuse — promoted from an approved pilot, no submission
- Files
- src/public/assets/home/hero-membrane.webp + hero-membrane@2x.webp
- Post-processing
- PIL: no crop needed (checked clean for invented marks). webp q82 at 1024w, and @2x by Lanczos upscale to 2048w. The pilot is a native 1024x576 generation, so @2x is an interpolated upscale rather than true detail — acceptable here because the subject is a soft shallow-DOF macro with no fine structure to lose.
- Measured
- mean HSV saturation 224.6 · circular-mean hue 316.1° · 26 KB (1x) · 65 KB (2x)
- Manifest note
- REUSED, not regenerated. This is pilot gel-magenta.png promoted verbatim into the home hero slot — the approved pilot subject (a blank drum head under a hard magenta gel) is literally the 'membrane' this asset was always meant to be, so it needed no new generation. The original stays in src/public/assets/pilot-color/ and is republished on /how as provenance. 0 submissions.
- If the file never loads
- flat var(--ground) #0B0A12 with the 2% procedural grain layer; the ring still starts on schedule at 700ms
- Cited from the recon
- https://landonorris.com/ (F1 generated texture as ground) + https://kprverse.com/ (F4 type directly on material)
-
Shown: hero-membrane-alt.webp — the repeat-visit hero, promoted from the approved violet pilot. hero-membrane-alt
A full drum kit in silhouette inside deep intensely saturated violet and indigo stage haze, vivid purple atmospheric fog filling the frame, high chroma electric violet, one bright hard white rim light outlining the cymbals and drum shells, concert stage, photographic, cinematic. Absolutely no text, no letters, no words, no numbers, no logos, no brand marks, no watermarks, no signage. No warm tungsten, no beige, no bone white, no sepia, no brown, no walnut wood tones, no warm neutral colour grade.
- Source
- Pilot reuse — promoted from an approved pilot, no submission
- Files
- src/public/assets/home/hero-membrane-alt.webp + hero-membrane-alt@2x.webp
- Post-processing
- webp q82 at 1024w and Lanczos 2048w. Checked clean for invented marks.
- Measured
- mean HSV saturation 208.7 · circular-mean hue 280.2° · 15 KB (1x) · 36 KB (2x)
- Manifest note
- REUSED: pilot gel-violet.png. The repeat-visit hero deliberately changes BOTH framing and gel colour (magenta macro -> violet wide) rather than being a near-identical second frame, which serves the 'something changes between visits' citation better than the old alt did. 0 submissions.
- If the file never loads
- hero-membrane
- Cited from the recon
- https://www.igloo.inc/ (F2 something changes at rest / between visits)
-
Shown: kit-rack.webp — a new asset; there was no /kit hero before the gel pass. kit-rack
A rack of five drums and cymbals standing in a row on a dark concert stage, lit by an intensely saturated vermilion stage gel, vivid scarlet red-orange light flooding the entire frame, extremely high chroma fire red-orange leaning strongly toward red, the colour of a road flare and a neon orange safety light, NOT terracotta, NOT clay, NOT amber, NOT tan, NOT brown, hard raking beam across the shells and the chrome hardware, deep near-black background, theatrical concert gel lighting, photographic, sharp detail. Absolutely no text, no letters, no words, no numbers, no logos, no brand marks, no maker's marks, no printed badges, no watermarks, no signage. No warm tungsten, no beige, no cream, no tan, no bone white, no sepia, no brown, no walnut wood tones, no terracotta, no warm neutral colour grade.
- Source
- Generated — a new submission
- Files
- src/public/assets/kit/kit-rack.webp + kit-rack@2x.webp
- Post-processing
- PIL HSV: hue +5.6 deg, saturation x1.06, contrast x1.06 -> webp q82 at 1024w and Lanczos 2048w. Checked clean for invented text/logos.
- Measured
- mean HSV saturation 251.7 · circular-mean hue 14.9° · 31 KB (1x) · 72 KB (2x)
- Manifest note
- NEW ASSET (there was no /kit hero before). Generated because the brief explicitly forbade using pilot gel-orange as a hero: its drum head reads terracotta and it is a split orange/blue two-gel composition, so it cannot carry a vermilion chapter. Flux returned this at hue 1.9 deg, i.e. pure red rather than the red-orange the palette specifies, so the hue was rotated +5.6 deg to land at 14.9 (vermilion #FF4A1C sits at 12). IMPORTANT NEGATIVE RESULT: the first attempt ran this through the full gel_map relight to force the hue, which made it muddy and bled the violet ground colour into the shadows as blue halos around the light pool — mean value fell 126 to 66 and it looked worse than the raw generation. That was discarded and the generation's own light kept, with only the small HSV nudge. 1 submission.
- If the file never loads
- var(--pad) panel carrying the /kit heading and the voice list only
- Cited from the recon
- https://motionsites.ai/sections?prompt=liquid-glass-cta (F1 rendered object on a near-flat dark field)
-
Shown: about-room.webp — the same file that carries the whole of /about. about-room
A single drum standing alone in the middle of a large dark empty room, seen from a low distance, one hard intensely saturated electric cyan theatrical stage gel from high left throwing a sharp bright pool of vivid cyan light across the head and casting one long hard-edged shadow across the floor, vivid cyan and teal light, high chroma turquoise, the rest of the room falling away into deep near-black, dust haze in the hard cyan beam, nobody present, cinematic wide photography, theatrical concert gel lighting, very low key, photographic, sharp detail. Absolutely no text, no letters, no words, no numbers, no logos, no brand marks, no maker's marks, no printed badges, no watermarks, no signage. No warm tungsten, no beige, no cream, no tan, no bone white, no sepia, no brown, no walnut wood tones, no warm neutral colour grade.
- Source
- Generated — a new submission
- Files
- src/public/assets/about/about-room.webp + about-room@2x.webp
- Post-processing
- webp q82 at 1024w and Lanczos 2048w. No crop needed; checked clean for invented text/logos.
- Measured
- mean HSV saturation 234.2 · circular-mean hue 193° · 13 KB (1x) · 35 KB (2x)
- Manifest note
- REGENERATED, staging deliberately preserved. The brief called the old about-room the strongest composition on the site, so the prompt keeps its exact staging — one drum alone, centred, low distant camera, a pool of light on the head, a real cast shadow on the floor, empty room — and changes only the light from tungsten to a single hard cyan gel. A free recolour was tried FIRST and rejected: the original is a soft wide low-contrast beam, so the luminance-to-gel remap produced a flat monochrome wash with visible contour banding along the edge of the light cone, and no shadow/highlight colour separation. That is the case where a recolour genuinely reads as a filter, so this one earned its submission. 1 submission.
- If the file never loads
- flat var(--ground) with the ground-shell texture; the statement and links carry the page
- Cited from the recon
- https://en.manayerbamate.com/ (F1 the product owns the centre of the fold)
-
Shown: how-bench.webp — the same file that carries the top of this page. how-bench
Straight overhead shot of a dark workbench, a blank unbranded drum head lying flat with a chrome hoop, five loose tension rods laid out in a row, a tuning key and a small cymbal, everything arranged with a lot of empty near-black bench between the objects, lit by one hard intensely saturated hot magenta theatrical stage gel raking from the left and a deeply saturated electric cyan edge light from the right, high chroma neon pink against high chroma turquoise, most of the bench falling to deep black, overhead documentary photography, theatrical concert gel lighting, very low key, photographic, sharp detail. Absolutely no text, no letters, no words, no numbers, no logos, no brand marks, no maker's marks, no printed badges, no watermarks, no signage, no paper, no notation. No warm tungsten, no beige, no cream, no tan, no bone white, no sepia, no brown, no walnut wood tones, no warm neutral colour grade.
- Source
- Generated — a new submission
- Files
- src/public/assets/how/how-bench.webp + how-bench@2x.webp
- Post-processing
- MANDATORY: PIL clone-stamp patch at (470,408) 65x28 sampled from clean head at (470,372), feathered with a 4px-blurred elliptical mask -> then crop to 985x576 to drop a warm wood sliver at the right edge -> webp q82 at 1024w and Lanczos 2048w. Do not ship the raw PNG.
- Measured
- mean HSV saturation 208.1 · circular-mean hue 224.6° · 32 KB (1x) · 90 KB (2x)
- Manifest note
- REGENERATED, and this is the FOURTH time flux has stamped an invented brand mark on this project: seed 302 rendered a legible cursive wordmark (it reads as a real drum manufacturer's logo) across the lower centre of the drum head. It sits dead centre, so a crop could not remove it. Patched with the same clone-stamp technique the old hero-membrane-alt needed — the head is a smooth magenta-to-cyan gradient there, so a feathered patch taken from directly above it is undetectable. Verified at 4x zoom after patching. The right edge also carried a strip of warm brown wood, cropped off. 1 submission.
- If the file never loads
- flat var(--ground) with the ground-shell texture; the /how page is prose-led and loses nothing essential
- Cited from the recon
- https://kprverse.com/ (F4 type over full-bleed key art) + https://landonorris.com/ (F1 material ground)
-
Shown: voice-kick.webp. voice-kick
[original tungsten prompt retained for provenance] Close macro of a heavy felt beater resting against a large dark bass drum head, the felt worn and compressed, warm tungsten sidelight from the right, deep walnut-black shell out of focus behind, warm bone membrane, oxidised brass hardware at the frame edge, shallow depth of field, cinematic instrument photography, fine film grain, no text, no lettering, no logos
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/kit/voice-kick.webp + voice-kick-450.webp
- Post-processing
- gel_map(magenta #FF2E88, sat x1.1, contrast x1.25) -> grain(2) to break banding -> webp q82 at 900w and 450w.
- Measured
- mean HSV saturation 177.4 · circular-mean hue 326.9°
- Manifest note
- RECOLOURED, kept. Beat 1 of the five-voice colour run. The felt beater and head carry enough luminance structure that the magenta remap reads as hard pink stage light falling on a real object rather than as a tinted photograph. 0 submissions.
- If the file never loads
- var(--pad) panel with the voice name in Bricolage t3 and its live scope only
-
Shown: voice-rim.webp — promoted from the approved cyan pilot. voice-rim
Macro photograph of chrome drum hardware, lugs, tension rods and a drum hoop, lit by an intensely saturated electric cyan stage gel, vivid cyan and teal light dominating the whole frame, high chroma turquoise, wet glossy specular highlights on polished chrome, deep near-black background, theatrical concert gel lighting, photographic, sharp detail. Absolutely no text, no letters, no words, no numbers, no logos, no brand marks, no watermarks, no signage. No warm tungsten, no beige, no bone white, no sepia, no brown, no walnut wood tones, no warm neutral colour grade.
- Source
- Pilot reuse — promoted from an approved pilot, no submission
- Files
- src/public/assets/kit/voice-rim.webp + voice-rim-450.webp
- Post-processing
- PIL crop to (180,0,900,576) to tighten onto the lug and hoop -> webp q82 at 900w and 450w.
- Measured
- mean HSV saturation 231.2 · circular-mean hue 194.6°
- Manifest note
- REUSED: pilot gel-cyan.png. Its subject IS this asset's subject — the counterhoop, lug and tension rod of a snare under a cyan gel — so it was promoted directly rather than regenerated. Beat 2 of the five-voice colour run. 0 submissions.
- If the file never loads
- var(--pad) panel with the voice name and its live scope only
-
Shown: voice-hat.webp. voice-hat
[original tungsten prompt retained for provenance] Close macro of two thin cymbals closed edge to edge, heavy green-blue oxidised patina and lathe rings across the bronze, one hard raking tungsten light picking out the hammer marks, deep brown-black background, cool chrome pull-rod just visible, shallow depth of field, cinematic instrument photography, fine film grain, no text, no lettering, no logos
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/kit/voice-hat.webp + voice-hat-450.webp
- Post-processing
- gel_map(lime #C7F53D, sat x1.1, contrast x1.25) -> grain(2) -> webp q82 at 900w and 450w.
- Measured
- mean HSV saturation 162.2 · circular-mean hue 75.8°
- Manifest note
- RECOLOURED, kept. Beat 3. The lathe grooves survive the remap with the highest local contrast of any recoloured asset (stddev 61.8) and it sits convincingly beside the gel-lime pilot. MINOR DEFECT ACCEPTED: the out-of-focus background shows some blotchy posterisation where the original's smooth bokeh had too few luminance levels to remap cleanly; the added grain reduces but does not remove it. Visible at full size only, not at the 450w card size this is used at. 0 submissions.
- If the file never loads
- var(--pad) panel with the voice name and its live scope only
-
Shown: voice-ping.webp. voice-ping
Close macro of a single slender polished metal tine standing clamped upright in a dark block, the bar catching a hard raking beam of intensely saturated vermilion stage gel light along its length, vivid scarlet red-orange light flooding the frame, extremely high chroma fire red-orange, the colour of a road flare, NOT terracotta, NOT clay, NOT amber, NOT tan, NOT brown, faint motion blur at the free tip as if just struck, deep near-black background, theatrical concert gel lighting, shallow depth of field, photographic, sharp detail. Absolutely no text, no letters, no words, no numbers, no logos, no brand marks, no maker's marks, no printed badges, no watermarks, no signage. No warm tungsten, no beige, no cream, no tan, no bone white, no sepia, no brown, no walnut wood tones, no warm neutral colour grade.
- Source
- Generated — a new submission
- Files
- src/public/assets/kit/voice-ping.webp + voice-ping-450.webp
- Post-processing
- webp q82 at 900w and 450w. Checked clean for invented text/logos.
- Measured
- mean HSV saturation 235.8 · circular-mean hue 18°
- Manifest note
- REGENERATED after the recolour was judged not good enough. Beat 4. The recolour of the old tungsten seed 5414 was rejected on sight: the original is a bright object on a black field, so the remap coloured the OBJECT and left the room black, which reads as an orange-painted prop rather than an object under orange light — and it was flat, at stddev 14.4. The regeneration puts the light itself in frame, a glowing tine throwing a real vermilion flare, and jumps to saturation 235.8. 1 submission.
- If the file never loads
- var(--pad) panel with the voice name and its live scope only
-
Shown: voice-sub.webp. voice-sub
Close macro looking straight into the dark open mouth of a large resonating tube, the inner wall falling away into deep black, a bright hard ring of intensely saturated electric violet stage gel light catching the rim of the mouth, vivid purple and indigo light, high chroma electric violet, faint violet haze drifting inside the tube, deep near-black surround filling most of the frame, shallow depth of field, theatrical concert gel lighting, photographic, sharp detail. Absolutely no text, no letters, no words, no numbers, no logos, no brand marks, no maker's marks, no printed badges, no watermarks, no signage. No warm tungsten, no beige, no cream, no tan, no bone white, no sepia, no brown, no walnut wood tones, no warm neutral colour grade.
- Source
- Generated — a new submission
- Files
- src/public/assets/kit/voice-sub.webp + voice-sub-450.webp
- Post-processing
- webp q82 at 900w and 450w. Checked clean for invented text/logos.
- Measured
- mean HSV saturation 220.5 · circular-mean hue 269.7°
- Manifest note
- REGENERATED after the recolour was judged not good enough. Beat 5. The old tungsten seed 5415 was a very dark, very low-detail frame (a shadowed tube mouth), and a remap of a near-black source has almost no luminance range to work with — it came out a dim violet blob at value 45 and stddev 14.6. The regeneration has a real lit rim and genuine interior falloff. This and voice-ping are the two cases where the source was simply too dark for a recolour to carry. 1 submission.
- If the file never loads
- var(--pad) panel with the voice name and its live scope only
-
Shown: scope-plate.webp — no waveform is drawn into the plate; /kit paints the live AnalyserNode trace on top of it. scope-plate
[original tungsten prompt retained for provenance] Flat frontal macro of a smoked dark glass instrument panel plate set in a brushed chrome bezel, a very faint etched square measurement grid just readable in the glass, one soft raking reflection across the upper third, deep brown-black glass, cool chrome edge, oxidised brass fixing screws in the corners, studio product photography, fine film grain, empty glass with nothing displayed on it, no text, no numbers, no lettering, no logos
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/kit/scope-plate.webp
- Post-processing
- gel_map(cyan #00CFE8, sat x1.0, contrast x1.2, hi_desat 0.55) -> grain(2) -> webp q80 at 1400w. Still used as the background of each voice's live canvas; the AnalyserNode trace is drawn ON TOP. The plate must never contain a drawn waveform.
- Measured
- mean HSV saturation 169 · circular-mean hue 194.7° · 41 KB
- Manifest note
- RECOLOURED, kept. The bezel and etched grid keep their structure and the glass now reads as a cyan-lit smoked panel. Verified still empty (no waveform, no numerals) after the remap. The raised hi_desat keeps the chrome bezel bright rather than driving it fully cyan, so the live trace still has something to contrast against. 0 submissions.
- If the file never loads
- var(--pad) rect, 12px radius, 1px var(--edge) border; the live trace is unaffected
-
Shown: five-strip-32.webp — a recolour of the original tungsten photograph. See the disclosure below. five-strip-32
Known limitation — disclosed, not fixed
[original tungsten prompt retained for provenance] A long horizontal strip of aged brass laid flat on dark walnut, the strip cut into five separate segments with narrow dark gaps between them, the first three segments sitting slightly closer together than the last two, raking tungsten light along the strip picking up brush marks and oxidised patina in the recesses, deep brown-black wood, cool chrome fixings, straight-on overhead macro photography, fine film grain, no text, no numbers, no lettering, no logos
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/five/five-strip-32.webp
- Post-processing
- gel_map(cyan #00CFE8, sat x1.15, gamma 0.85, contrast x1.35, hi_desat 0.30) -> grain(2) -> webp q82 at 1800w.
- Measured
- mean HSV saturation 229.2 · circular-mean hue 187.1° · 219 KB
- Manifest note
- RECOLOURED, kept — and here recolour was the REQUIRED approach, not merely the cheap one. The /five clock masks each of the five segments individually using bounding boxes measured once into src/js/five-strip.json. A regeneration would have moved the segments and invalidated those boxes, and the original seed 5422 already proved flux will happily render six segments instead of five. The luminance remap changes not one pixel of geometry, so five-strip.json remains valid and untouched. This is the strongest recolour on the site: brass and walnut collapse into a single cyan family with the segment structure fully intact. 0 submissions.
- If the file never loads
- five CSS divs, 2px radius, var(--felt) filling to var(--brass) on their beat
- Correction stamp, 2026-08-19
- OPEN DEFECT - KNOWN FILTER, SHIPPED KNOWINGLY — Regeneration attempted twice across 6 fal submissions and FAILED. This file is unchanged and is still the gel_map recolour of the original warm-tungsten photograph. It is retained deliberately, as a documented limitation rather than a disguised one.
- Why it reads as a filter
- Measured against _gel_authenticity_gate: the 1st percentile of saturation among highlight pixels is 199 (gate: below 80; approved pilots score 3 to 71) and blown specular pixels are 0.0000 percent (gate: above 0.15; approved pilots score 0.22 to 1.05). gel_map preserves luminance and rebuilds chroma at a fixed value, so it cannot produce a desaturated specular core. Warm timber under a saturated cyan gel should fall to near-black, but the planking still renders brighter than the metal.
- Disclosed on this page
- Yes - disclose this honestly. Six generations across three prompt strategies could not produce chroma, staging and directional light simultaneously on this subject, and the failing candidates were not post-processed to disguise the gap. — the six attempts, the evidence and the corrected gate ↓
- Candidates retained
- src/public/assets/five/candidate-32-a.png, candidate-32-b.png, candidate-32-c.png, candidate-23-a.png, candidate-23-b.png, candidate-23-c.png, with fal sidecars. Raw PNG, no post-processing.
-
Shown: five-strip-23.webp — a recolour of the original tungsten photograph. See the disclosure below. five-strip-23
Known limitation — disclosed, not fixed
[original tungsten prompt retained for provenance] A long horizontal strip of aged brass laid flat on dark walnut, the strip cut into exactly five separate rectangular segments (count them: five, not four, not six) with narrow dark gaps between them, the first two segments sitting slightly closer together than the last three, raking tungsten light along the strip picking up brush marks and oxidised patina in the recesses, deep brown-black wood, cool chrome fixings, straight-on overhead macro photography, fine film grain, no text, no numbers, no lettering, no logos
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/five/five-strip-23.webp
- Post-processing
- Identical gel_map/grain/export to five-strip-32 so the two cross-fade cleanly. Same segment-box measurement in src/js/five-strip.json, unchanged.
- Measured
- mean HSV saturation 227.8 · circular-mean hue 186.9° · 221 KB
- Manifest note
- RECOLOURED, kept. Same reasoning and deliberately identical parameters to five-strip-32 — these two are the only pair on the site that cross-fade into each other, so they must be relit with exactly the same settings or the /five orchestrated moment would shift colour mid-transition. 0 submissions.
- If the file never loads
- five CSS divs, 2px radius, regrouped gaps
- Correction stamp, 2026-08-19
- OPEN DEFECT - KNOWN FILTER, SHIPPED KNOWINGLY — Regeneration attempted twice across 6 fal submissions and FAILED. This file is unchanged and is still the gel_map recolour of the original warm-tungsten photograph. It is retained deliberately, as a documented limitation rather than a disguised one.
- Why it reads as a filter
- Measured against _gel_authenticity_gate: the 1st percentile of saturation among highlight pixels is 199 (gate: below 80; approved pilots score 3 to 71) and blown specular pixels are 0.0000 percent (gate: above 0.15; approved pilots score 0.22 to 1.05). gel_map preserves luminance and rebuilds chroma at a fixed value, so it cannot produce a desaturated specular core. Warm timber under a saturated cyan gel should fall to near-black, but the planking still renders brighter than the metal.
- Disclosed on this page
- Yes - disclose this honestly. Six generations across three prompt strategies could not produce chroma, staging and directional light simultaneously on this subject, and the failing candidates were not post-processed to disguise the gap. — the six attempts, the evidence and the corrected gate ↓
- Candidates retained
- src/public/assets/five/candidate-32-a.png, candidate-32-b.png, candidate-32-c.png, candidate-23-a.png, candidate-23-b.png, candidate-23-c.png, with fal sidecars. Raw PNG, no post-processing.
-
Shown: plate-brass.webp — the whole plate, before the centre-crop and the quartering into cards 01–04. plate-brass
[original tungsten prompt retained for provenance] A flatbed scan of a flat sheet of aged brass filling the entire frame corner to corner with perfectly uniform brightness in every direction, no darkening or vignette toward any edge or corner, no visible edges of the sheet, fine circular brush marks, warm ochre tone with darker oxidised streaks scattered evenly across the whole surface, even soft diffuse light, macro material photography, fine film grain, no objects, no text, no lettering
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/patterns/plate-brass.webp + cards 01-04
- Post-processing
- gel_map(lime #C7F53D, sat x1.1, contrast x1.25, gamma 0.9) -> grain(2) -> centre-crop to the inner 80% (discards the border vignette this generation always had) -> plate-brass.webp at 1400w q80, and the same crop quartered into card-01..04 at 512x512 q78. Every card gated at PIL stddev >= 10.
- Measured
- circular-mean hue 74.4°
- Manifest note
- RECOLOURED to lime. The asset id and file name are deliberately unchanged because src/css references patterns/plate-brass.webp directly and CSS was out of scope for this pass — the id now names a slot, not a material. IMPORTANT: a dedicated lime plate WAS generated for this (seed 304, asking for hammered metal flooded with an acid yellow-green gel) and was DISCARDED. It came back with the same border vignette the earlier plates had, and worse, it failed the established stddev >= 10 texture gate on all four quadrants (6.54 / 3.84 / 9.20 / 8.81) — a near-flat neon swatch, exactly the blank-card failure this manifest already records for plate-mylar. Recolouring the existing brass plate instead produced stddevs of 27.0 / 26.7 / 21.6 / 15.4 for free, with the side benefit that all sixteen cards are now the same KIND of image (flat material swatches) in four colour families. 1 submission spent and discarded.
- If the file never loads
- var(--pad) card with a 1px var(--edge) border; the pattern grid and ring are unaffected
-
Shown: card-05.webp — one of the four quadrants cut from this plate. plate-patina
No prompt in the manifest. This file was relit in PIL from the image the original submission produced, and the colour-gel pass did not retain that submission’s original prompt on this row. Where the pass did retain it — five-strip-32 and five-strip-23 — it is printed above the notes, marked as retained for provenance. This is stated rather than reconstructed: an invented prompt would be worse than a missing one on a page whose whole claim is that nothing here is written by hand.
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/patterns/card-05..08.webp
- Post-processing
- gel_map(cyan #00CFE8, sat x1.1, contrast x1.25, gamma 0.9) -> grain(2) -> inner-80% centre-crop -> four quadrants at 512x512 q78. Gated at stddev >= 10.
- Measured
- circular-mean hue 186°
- Manifest note
- RECOLOURED, kept. The verdigris mottling is ideal source material for a gel remap — dense mid-tone texture throughout — so these are the highest-saturation cards in the set at about 248. 0 submissions.
- If the file never loads
- var(--pad) card with a 1px var(--edge) border
-
Shown: card-09.webp — one of the four quadrants cut from this plate. plate-felt
No prompt in the manifest. This file was relit in PIL from the image the original submission produced, and the colour-gel pass did not retain that submission’s original prompt on this row. Where the pass did retain it — five-strip-32 and five-strip-23 — it is printed above the notes, marked as retained for provenance. This is stated rather than reconstructed: an invented prompt would be worse than a missing one on a page whose whole claim is that nothing here is written by hand.
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/patterns/card-09..12.webp
- Post-processing
- gel_map(vermilion #FF4A1C, sat x1.1, contrast x1.90, gamma 0.9) -> grain(2) -> inner-80% centre-crop -> four quadrants at 512x512 q78. Gated at stddev >= 10.
- Measured
- circular-mean hue 11.1°
- Manifest note
- RECOLOURED, kept, but it needed a much harder contrast push than the other three plates (x1.90 against x1.25). Felt is a soft matted material with very little luminance range, and at the standard setting card-09 failed the stddev >= 10 gate at 9.87. Raising local contrast before the gel map recovers the fibre texture and clears the gate. NOTE FOR THE SATURATION CHECK: these four sit at hue about 11 deg, inside the warm band, but at saturation 237-247 — that is vermilion light, not tan. Hue alone would falsely flag them; hue and chroma together do not. 0 submissions.
- If the file never loads
- var(--pad) card with a 1px var(--edge) border
-
Shown: card-13.webp — one of the four quadrants cut from this plate. plate-mylar
No prompt in the manifest. This file was relit in PIL from the image the original submission produced, and the colour-gel pass did not retain that submission’s original prompt on this row. Where the pass did retain it — five-strip-32 and five-strip-23 — it is printed above the notes, marked as retained for provenance. This is stated rather than reconstructed: an invented prompt would be worse than a missing one on a page whose whole claim is that nothing here is written by hand.
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/patterns/card-13..16.webp
- Post-processing
- gel_map(violet #7B3FE4, sat x1.1, contrast x2.00, gamma 0.9) -> grain(2) -> inner-80% centre-crop -> four quadrants at 512x512 q78. Gated at stddev >= 10.
- Measured
- circular-mean hue 260.5°
- Manifest note
- RECOLOURED, kept. Like the felt this needed a hard contrast push (x2.00): quadrants 3 and 4 were the marginal ones in the original generation too (stddev 13.01 and 12.43 there) and failed the gate at 8.05 under the standard setting. At x2.00 they clear it at 10.2 and 10.6 — passing, but these two remain the thinnest-textured cards of the sixteen and are the first place to look if the /patterns grid ever reads flat. 0 submissions.
- If the file never loads
- var(--pad) card with a 1px var(--edge) border
-
Shown: beat-1.webp — one of the five rotations cut from this single generation. beat-bloom
[original tungsten prompt retained for provenance] Top-down macro of a single strike landing on a taut dark drum membrane, one soft concentric shockwave ripple expanding from an off-centre impact point, caught by a single hard raking light so the ripple crests glow warm brass and the troughs fall to brown-black, the rest of the membrane in deep shadow, centred composition on a black field, high speed instrument photography, fine film grain, no sticks, no hands, no objects, no text, no lettering
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/home/beat-1.webp .. beat-5.webp
- Post-processing
- ONE original submission -> FIVE frames, unchanged from the old pipeline except for the relight. gel_map(magenta #FF2E88, sat x1.15, contrast x1.30) -> grain(2) -> rotate 0/72/144/216/288 degrees about centre -> crop to inscribed square -> webp q80 at 640x640. Each fires under its matching arc in the pull-apart section.
- Measured
- mean HSV saturation 180.7,182.5,183.4,184.2,183.6 · circular-mean hue 325.8° · NaN KB
- Manifest note
- RECOLOURED, kept. The concentric shockwave ripple is pure luminance structure, the ideal case for this remap — the crests now glow magenta and the troughs fall to the ground colour. Home is the magenta chapter, so all five frames share one hue and the rotation alone differentiates them. 0 submissions.
- If the file never loads
- a CSS radial-gradient pulse in the magenta token at 30% opacity, same timing
-
Shown: loop-floor.webp. loop-floor
No prompt in the manifest. This file was relit in PIL from the image the original submission produced, and the colour-gel pass did not retain that submission’s original prompt on this row. Where the pass did retain it — five-strip-32 and five-strip-23 — it is printed above the notes, marked as retained for provenance. This is stated rather than reconstructed: an invented prompt would be worse than a missing one on a page whose whole claim is that nothing here is written by hand.
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/loop/loop-floor.webp
- Post-processing
- gel_map(violet #7B3FE4, sat x1.05, contrast x1.25) -> grain(2) -> webp q80 at 2400w. Front parallax layer, translates 0-18px to pointer. Its CSS brightness() is driven +8% by every beat event and decays over --t-move.
- Measured
- mean HSV saturation 163.7 · circular-mean hue 260° · 131 KB
- Manifest note
- RECOLOURED, kept. The scuffed bronze floor keeps its raking-light structure and now reads as a violet-lit stage floor. The brightness() beat reaction works on the recoloured plate exactly as before. 0 submissions.
- If the file never loads
- a CSS linear-gradient from var(--pad) to var(--ground); the brightness reaction still works on the gradient
-
Shown: loop-far.webp. loop-far
No prompt in the manifest. This file was relit in PIL from the image the original submission produced, and the colour-gel pass did not retain that submission’s original prompt on this row. Where the pass did retain it — five-strip-32 and five-strip-23 — it is printed above the notes, marked as retained for provenance. This is stated rather than reconstructed: an invented prompt would be worse than a missing one on a page whose whole claim is that nothing here is written by hand.
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/loop/loop-far.webp
- Post-processing
- gel_map(violet #7B3FE4, sat x1.0, contrast x1.15, gamma 1.1) -> grain(2) -> webp q78 at 2000w. Back parallax layer, translates 0-6px to pointer (opposite sign to loop-floor).
- Measured
- mean HSV saturation 161.1 · circular-mean hue 259.4° · 26 KB
- Manifest note
- RECOLOURED, kept. Deliberately the flattest asset in the set (stddev 14.6) because it is the far parallax layer and sits mostly in falloff — that is the composition doing its job, not a failed remap. Relit with the same violet as loop-floor so the two layers read as one room. 0 submissions.
- If the file never loads
- flat var(--ground); parallax simply has one layer
-
Shown: ground-shell.webp — the dark-theme tile. See “one asset that shipped and still did not work”, below. ground-shell
No prompt in the manifest. This file was relit in PIL from the image the original submission produced, and the colour-gel pass did not retain that submission’s original prompt on this row. Where the pass did retain it — five-strip-32 and five-strip-23 — it is printed above the notes, marked as retained for provenance. This is stated rather than reconstructed: an invented prompt would be worse than a missing one on a page whose whole claim is that nothing here is written by hand.
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/ground/ground-shell.webp
- Post-processing
- gel_map(#5B49A8, sat x0.60, contrast x1.15, ground #0B0A12, vmax 0.62) -> grain(2) -> webp q78 at 1024w. The existing 8px-gaussian 4-way mirror tile is already baked into the source PNG and is unchanged. Applied at 22% opacity, mix-blend-mode multiply, over var(--ground).
- Measured
- mean HSV saturation 94 · circular-mean hue 249° · 27 KB
- Manifest note
- RECOLOURED to a cool violet-black. DELIBERATELY LOW CHROMA AND BELOW THE 120 SATURATION FLOOR — this is the one category where a high number would be wrong. This texture multiplies over the entire site at 22% opacity, so any real chroma in it would cast a colour across every page and fight each chapter's own gel. What matters for this asset is that it is no longer BROWN: hue moved out of the warm band to 249 deg (violet-blue) and it now darkens toward the #0B0A12 ground rather than toward walnut. Flagged explicitly so the /how provenance page does not have to explain the number twice. 0 submissions.
- If the file never loads
- flat var(--ground) #0B0A12 + the 2% procedural CSS grain only
-
Shown: ground-head-light.webp — the light-theme tile. ground-head-light
No prompt in the manifest. This file was relit in PIL from the image the original submission produced, and the colour-gel pass did not retain that submission’s original prompt on this row. Where the pass did retain it — five-strip-32 and five-strip-23 — it is printed above the notes, marked as retained for provenance. This is stated rather than reconstructed: an invented prompt would be worse than a missing one on a page whose whole claim is that nothing here is written by hand.
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/ground/ground-head-light.webp
- Post-processing
- gel_map(#7E74B4, sat x0.45, contrast x1.15, ground #4A4466, vmax 0.92) -> grain(2) -> webp q78 at 1024w. Mirror tile already baked into the source. Applied at 18% opacity, multiply, over the light-theme ground.
- Measured
- mean HSV saturation 33.8 · circular-mean hue 248.8° · 6 KB
- Manifest note
- RECOLOURED, and this one MATTERED even though its number is the lowest on the site: the light theme's ground was literally cream (#E6DFD1 with a bone-coloured texture over it), the single most beige surface in the build. It is now a pale cool grey-lilac at hue 248.8. Same reasoning as ground-shell — an 18% multiply texture must stay near-neutral or it tints every light-theme page — so the low saturation is the correct result, not drift. OPEN DEPENDENCY: the paired token change (the light ground itself moving off #E6DFD1) belongs to the token layer, not to this manifest. If that token is still cream, this asset will not save it. 0 submissions.
- If the file never loads
- flat cool off-white + the 2% procedural CSS grain only
-
Shown: og-card.png — the social preview image, not used on any page. og-card
No prompt in the manifest. This file was relit in PIL from the image the original submission produced, and the colour-gel pass did not retain that submission’s original prompt on this row. Where the pass did retain it — five-strip-32 and five-strip-23 — it is printed above the notes, marked as retained for provenance. This is stated rather than reconstructed: an invented prompt would be worse than a missing one on a page whose whole claim is that nothing here is written by hand.
- Source
- Recoloured — relit in PIL, no submission
- Files
- src/public/assets/meta/og-card.png
- Post-processing
- gel_map(magenta #FF2E88, sat x1.05, contrast x1.20, hi_desat 0.55) -> grain(2) -> saved as PNG at 1200x630 (NOT webp — some scrapers reject webp).
- Measured
- mean HSV saturation 168.2 · circular-mean hue 330.7° · 859 KB
- Manifest note
- RECOLOURED. The already-composited card (membrane + the static five-ring SVG + the 'fiv4' wordmark) was relit as a whole rather than rebuilt, so the ring and wordmark are unchanged in position and now read as dark marks on a magenta head. TEXT AUDIT: this card carries three pieces of type — 'fiv4', the ring mark, and a small monospace '01 / 20' on the lower head. All three are DELIBERATE composited design elements inherited from the previous build, not flux hallucinations; verified at 4x zoom (clean geometric type, correct baseline, consistent with the documented composite step). They were left as-is because recolouring was the scope of this pass. If '01 / 20' is not wanted on a public og:image, that is a composite change rather than an imagery change. 0 submissions.
- If the file never loads
- a flat var(--ground) card carrying only the static ring SVG and the wordmark
-
Shown: gel-magenta.webp — one of the five approved pilots. The other four are below. pilot-color-set
No prompt row of its own. These five files are the approved pilots republished at web weight; three of them were promoted into production slots, and the prompt of each is recorded on the row of the slot it took (hero-membrane, hero-membrane-alt, voice-rim).
- Source
- Pilot reuse — promoted from an approved pilot, no submission
- Files
- src/public/assets/pilot-color/gel-magenta.webp, gel-cyan.webp, gel-lime.webp, gel-orange.webp, gel-violet.webp (the .png originals are retained untouched alongside them)
- Post-processing
- webp q80 at 800w. No colour processing of any kind — these are the approval record and must stay exactly as approved.
- Measured
- gel-magenta sat 224.4 / hue 316.1°; gel-cyan sat 227.5 / hue 195.3°; gel-lime sat 245.5 / hue 94.2°; gel-orange sat 219.3 / hue 351°; gel-violet sat 208.6 / hue 280.2°
- Manifest note
- The five approved pilots, republished at web weight so /how can show the provenance strip. Three of the five were additionally promoted into production slots (gel-magenta -> home hero, gel-violet -> home repeat-visit hero, gel-cyan -> kit voice-rim). gel-lime and gel-orange appear ONLY here: gel-lime because recolouring the existing flat brass plate produced better /patterns cards than quartering a cymbal photograph, and gel-orange because the brief ruled it out as a hero — its drum head reads terracotta and it is a split orange/blue two-gel frame, so it documents the look without carrying a page. 0 submissions.
- If the file never loads
- the /how prose stands alone; the strip is illustrative
gel-magenta — beat 1
gel-cyan — beat 2
gel-lime — beat 3, never carried a page
gel-orange — ruled out as a hero
gel-violet — beat 5
03 — the misses
What failed
Two pilot images were run before the manifest was trusted with the rest. One of them is still on disk because it did not work. Since then the whole palette was replaced, and one asset failed that replacement six times — that one is first, because it is still on the site.
The two images on /five are a filter, and we could not fix them
Known limitation — shipped knowingly, disclosed here
The site is lit by five saturated stage gels. Two images are not: five-strip-32.webp and five-strip-23.webp, the strip that carries /five, are the original warm-tungsten photograph with its colour remapped to cyan. They are a hue filter over a photograph taken under a different light, and that is a different thing from a photograph taken under a cyan lamp.
Nobody would have noticed from the numbers alone, which is the point of writing it down. Mean saturation is 229 and mean hue is 187° — both comfortably inside the cyan chapter, both the kind of figure a colour gate is usually happy with. The tell is in the highlights. A hue remap rebuilds every pixel at a fixed chroma, so it cannot produce a desaturated specular core; a real lamp blows its hot spots out toward its own white. Measured on these two files, the 1st percentile of saturation among highlight pixels is 199 and 198, where the approved gel pilots score 3 to 71, and the fraction of blown speculars is 0.0000%, where those pilots score 0.22% to 1.05%. Under a hard cyan gel the warm planking should fall to near-black; on these files it still renders brighter than the metal.
Six attempts, three prompt strategies, three different failures
Regeneration was tried twice, six fal-ai/flux/dev submissions in all, against the constraint that the five segment bounding boxes in src/js/five-strip.json were measured once and drive the live per-segment lighting on /five — so a replacement had to land the plates within a few pixels of the recorded boxes and carry the gel and be directionally lit. Flux gave any two of the three and never all three.
| Candidate | Strategy | Colour | Light | Geometry | Verdict |
|---|---|---|---|---|---|
| candidate-32-a | A — original seed, lighting clauses swapped | sat 187.6 | 0.32% blown | plates off by up to 288px | Light passes, geometry fails. Arguably renders six plates. |
| candidate-23-a | A — same swap on the 2+3 seed | sat 223.8 | 0.0000% blown | drifted into three-quarter perspective | Fails. Column correlation collapses to r=0.50. |
| candidate-32-b | B — heavy geometric constraints front-loaded | sat 86.3 | 1.13% blown | 5/5 boxes, worst plate 21px | Geometry and light pass, colour fails. Flux rendered neutral brushed steel and dropped the gel. |
| candidate-23-b | B — same staging, gel moved right | sat 51.2 | 1.36% blown | best correlation of the pass, r=0.856 | Same failure, worse. Almost fully neutral. |
| candidate-32-c | C — colour named three times before any staging | sat 234.3 | 0.0000% blown, highlight floor 135 | 4/5 centres on a plate | Colour and staging pass, light fails. Uniform cyan ambience, no hot cores, and the “flat black surface” renders mid-cyan. |
| candidate-23-c | C — inverted emphasis | sat 235.4 | 0.0019% blown, highlight floor 96 | plates off by up to 70px | Fails on the same axis, with worse geometry. |
What was not done
candidate-32-b would have cleared every numeric gate after a saturation boost. It was not boosted. Raising the chroma of an image to pass a chroma gate is precisely the operation the gate exists to detect, and an asset that passes that way is exactly the artefact we were trying to remove. So the candidates sit on disk as raw files with no post-processing of any kind, the two filtered strips are still live on /five, and this section exists instead of a fix. That decision is recorded in the manifest under explicitly_not_done and integrity_note.
The test itself was wrong twice, and that is recorded too
Two earlier versions of the authenticity check were adopted and then disproved by measurement, so they are written down as superseded rather than quietly dropped:
| Test | Status | Why |
|---|---|---|
| Highlight-desaturation delta | Rejected | The approved pilot scores −3.5 on it and one known filter scores −8.5, so the test ranks the reference between the two filters. It had been accepted as decisive before anyone measured it against the reference. |
| Whole-frame minimum saturation | Rejected | Any image containing pure black scores zero, whatever made it. Both known filters score zero on it, and so does every candidate. |
| Highlight saturation floor — 1st percentile of saturation among pixels with V>200, must be under 80 | In force | Known filters score 198–199; approved pilots score 3–71. The worst pilot and the best failure sit either side of 80 with margin. |
| Blown speculars — fraction of pixels with S<60 and V>230, must exceed 0.15% | In force, secondary | Confirms the frame really contains blown highlights. Agrees with the primary test on every sample measured; filters score 0.0000%. |
One more finding from that pass is worth stating on its own, because it is the reason a saturation gate alone was never going to catch the original problem: mean saturation does not detect beige, because brown is saturated orange. A tan card measured 241. Hue and chroma have to be read together, which is why every row above records both.
If it is ever picked up again
The recommendation in the manifest is not more prompting. Three failure modes across six submissions on one subject look like a model limitation rather than a wording gap. The route with a chance is an image-to-image relight conditioned on candidate-32-b — which already has physically correct directional light and plates within 3–21px of the recorded boxes, and needs only its lamp coloured. That is relighting a correctly-lit source rather than remapping a wrongly-lit one, which is a genuinely different operation from the filter now on /five. It would still have to face the gate above, and it would still have to be disclosed here as derived.
The pilots
The rejected pilot ground
Rejected — seed 5402, not re-rolled
Flat seamless material swatch, orthographic top-down, uniform even lighting corner to corner, no vignette, no centre, no focal point: brushed coated mylar drum-head surface, fine straight horizontal brush grain, scattered dust specks and hairline micro-scratches, warm bone-white going to a soft brown-black tone, subtle tonal drift only, abstract texture field, seamless tiling swatch, macro material photography, fine film grain, no objects, no text, no lettering
Two attempts are recorded. One turned “radial brush grain” into a literal sunburst inside a heavy vignette: a good-looking object, and an object is exactly what a ground must not be. The other over-corrected into a cream plaster square with torn edges, heading straight for the cream palette the brief bans. The file left on disk — the one whose sidecar records seed 5402, shown here — is that second one: a sheet of paper with a torn edge, which is a picture of a thing rather than a field. The pilot budget was four submissions and it was spent, so this was never re-rolled.
The diagnosis, recorded in design-system-v2.md §B.4, is that the model resists abstract “flat seamless field” instructions — it wants a subject, and given “bone-white” it reaches for paper. The manifest was changed in response: ground assets are prompted as a photographed sheet of a named material at a grazing angle filling the frame, and the flat tile is produced afterwards in PIL. That correction is visible in the ground-shell and ground-head-light rows above, and it still took three submissions each.
The mark that was never there
Accepted — seed 5401, with a mandatory crop
The accepted hero came back with a legible three-letter manufacturer mark stamped across the bottom of the membrane. There is no such manufacturer. The manifest therefore carries a mandatory post step — crop the bottom 14% — and forbids shipping the raw PNG.
The shipped file went further than the plan. hero-membrane.webp is 1024 × 414 against a 1024 × 576 original: 28% of the height was removed, not 14%, because 14% did not clear the mark. The second hero, hero-membrane-alt, came back with a different invented logo sitting mid-frame where no crop could reach it; that one was clone-stamped out of the membrane before the crop. Both repairs are named in the rows above.
Every generation that was thrown away
Nineteen generations were discarded across the two runs. Each line is a seed the manifest, or one of its provenance notes, records as discarded, with the reason it gives. The first twelve are from the original tungsten pass; the last seven are from the colour-gel pass that replaced it. The final line is the one that was kept, for comparison.
| Seed | Asset | Why it was discarded |
|---|---|---|
| 5402 | pilot ground | A radial sunburst in a heavy vignette, then a cream plaster square with torn edges. Pilot budget exhausted; not re-rolled. |
| 5404 | ground-shell | A corner highlight that read fine alone but bloomed into a sunburst once four-way mirror-tiled. |
| 5407 | ground-shell | A left-to-right lighting gradient that mirrored into a vignette. |
| 5405 | ground-head-light | Reproduced the pilot failure exactly: a cream disc on a torn-paper field. |
| 5408 | ground-head-light | A flatbed-scan retry that came back an even more literal paper disc. |
| 5422 | five-strip-23 | Rendered six segments instead of five, so it could not carry the per-segment masking. |
| 5431 | plate-brass | A visible dark vignette around the whole sheet. |
| 5434 | plate-mylar | Discarded in the first pass; the manifest does not record a reason. |
| 5436 | plate-mylar | A near-flat pale swatch — the four cards cut from it measured 1.3–1.6 stddev against 11.7–25.5 on the other twelve, i.e. four of sixteen cards would have shipped blank. |
| 5437 | plate-mylar | Fixed the blankness (17–37 stddev) but reverted to a torn disc on a field, with a jagged edge cutting into two of four quadrants. |
| 5438 | plate-mylar | Same texture language plus an explicit “no torn edge”; the torn edge still intruded into two of four quadrants. |
| 5471 | og-card | Stamped a legible invented brand wordmark across the membrane — unusable on a public social card. |
| 304 | plate-lime | Gel pass. A dedicated lime plate, asked for as hammered metal under an acid yellow-green gel. Came back with the same border vignette the earlier plates had and failed the stddev ≥ 10 texture gate on all four quadrants (6.54 / 3.84 / 9.20 / 8.81) — a near-flat neon swatch. Recolouring the existing plate scored 27.0 / 26.7 / 21.6 / 15.4 for free. |
| 5421 (a) | five-strip-32 | Gel pass. Real cyan gel light, but the plates drifted up to 288px off the recorded segment boxes and it arguably rendered six. Disclosure ↓ |
| 5423 (a) | five-strip-23 | Gel pass. Correct plate count and strong chroma, but flux abandoned the overhead brief for a three-quarter perspective; column correlation fell to r=0.50. |
| 5421 (b) | five-strip-32 | Gel pass. Near-perfect staging and genuinely directional light, but flux dropped the gel and rendered neutral brushed steel (saturation 86.3 against a gate of 180). |
| 5421 (b, right) | five-strip-23 | Gel pass. Best column correlation of the whole attempt (r=0.856) and the same colour failure, worse (saturation 51.2). |
| 5421 (c) | five-strip-32 | Gel pass. Colour and staging both returned; the light did not. Uniform cyan ambience, no blown speculars, highlight saturation floor 135 against a gate of 80. |
| 5423 (c) | five-strip-23 | Gel pass. Same ambient-light failure with worse geometry (plates off by up to 70px). After this the attempt was stopped rather than continued. |
| 5439 | plate-mylar | Kept, for contrast: the fifth attempt, back to flatbed-scan framing, filled the frame edge to edge and passed all four quadrants at 35.13, 31.68, 13.01 and 12.43. |
And one asset that shipped and still did not work
ground-shell survived its own retries and was still the wrong tool. As a file it measures 28.4 greyscale stddev, but the plan applied it at 22% opacity in multiply over a ground that is already almost black, which is close to a no-op: the first page to lean on it measured 5.59 in the light theme and 7.39 in the dark against a required 18. Multiplying a dark texture into a dark ground changes almost nothing. The blend was derived for the light theme and never re-derived for the dark one. Pages here carry their material with real photographs at full strength instead — the bench at the top of this page is doing that job, and its own measurement is in the build report rather than asserted here.
04 — the reading
What we looked at first
Nine agents, three sources, headless Chromium screenshots. Every mechanic in the design system has a URL and a PNG behind it; nothing came from memory.
The three sources were the Awwwards winners list, styles.refero.design and motionsites.ai. What matters more than the wins is the ledger of what would not load, which the recon document records in full at §1 so that nothing could be quietly absorbed as if it had been seen. Seventeen sources are named there, plus one note on the environment. This is that list.
| Source | What happened |
|---|---|
| the environment | Nine concurrent headless browsers saturated the host — 100% CPU, roughly 25 to 90 Chrome processes. Daemons on six ports died or failed to start at least once; a seventh never started and that agent used bundled Playwright instead. Several network-idle waits, screenshots and JS reads timed out, and one agent’s process kill may have taken a sibling’s daemon down with it. |
| igloo.inc | One pass stuck on the ASCII preloader with no canvas and fonts unloaded; two other passes rendered. |
| landonorris.com | The hero WebGL never painted in the motion pass; scroll and hover shots hung. The type and material passes did get fold and scroll shots. |
| lusion.co | Virtual scroll — scrollTo is a no-op — and screenshots hung. Scroll shots are missing from all three passes. |
| messenger.abeto.co | A non-scrolling BEGIN gate; scroll and hover were never run. |
| opalcamera.com/opal-tadpole | No longer the awarded page — it redirects to an essay. Recorded for honesty, not used as evidence. |
| en.manayerbamate.com | Navigation timeouts; the motion pass got only three shots. |
| activetheory.net | A “your browser is not supported” WebGL gate. The real site was never observed. |
| dontboardme.com/poooo | 404 at the recorded URL; the root is an interaction gate and the content behind it was not reached. |
| chungiyoo.com | Navigation timeout, fold only, virtual scroll. |
| caldera.xyz | The hero MP4 rendered blank headless in both passes. |
| thoughtlab.com | Renders, but virtual scroll meant no below-fold shots in any of the three passes. |
| auros.global | The hero orb videos and canvases never painted; only a gradient glow was visible. |
| wise.com | Navigation timeout on the type pass though the page rendered; the motion pass never visited it. |
| styles.refero.design | The first shot of the index came back about:blank while the daemon was still starting; the second load was fine. |
| motionsites.ai | Prompts are paywalled for the crown entries and the free ones copy to clipboard only, so no prompt text was captured anywhere. Entries carry no outbound links to the source sites, two detail previews never painted, two guessed slugs were invalid, and the HLS videos do not decode headless. |
| duolingo.com | Network-idle timeout; the page rendered. |
| the in-app browser | Could not composite in this environment for any agent, so it was not used as evidence at all. |
The first version of this site failed for a reason recorded in the same document: a flat grey fold with no imagery and nothing moving at rest — and a fabricated version history, which was disqualifying on its own. That is why the list below is fetched rather than typed.
05 — the record
The commits
Generated at build time from this repository’s git log. Not written by hand.
build.mjs runs git log --pretty=format:%H%x1f%aI%x1f%s --no-merges and writes hash, short hash, ISO date and subject to dist/data/commits.json. This page fetches that file and prints whatever is in it. If the fetch fails you will see the failure here, not a substitute — there is no hand-written fallback anywhere in this section.
Reading /data/commits.json…