Go to file
Dejvino e90951c277 Cache the gallery against a fingerprint of the source that built it
Three minutes of GPU work is fine once and intolerable on every page load, so
the gallery now builds once and comes back from IndexedDB after that.

The key is the part worth getting right. A cache you clear by hand is worse than
no cache: it will eventually show last week's pixels while you are judging this
morning's change, and it will look like a render, so you will believe it. Here
the key is a fingerprint of every file under src/, collected through
import.meta.glob so it covers the shaders, the identity, the look generator, the
engine and the descriptors without naming any of them — the file that
invalidates a render is exactly the one nobody remembers to list. Edit anything
and the entry stops matching and the page rebuilds without being asked.

Thumbnails are WebP blobs rather than raw pixels: sixty-five scenes at six
frames of 256x144 is 57MB raw, and measured, the compressed form is 4.1MB for
the whole library. Saving a build evicts every other one, so the store cannot
grow without bound.

The spinner is a CSS animation on purpose. Building blocks the main thread in
bursts and a JS-driven spinner would freeze mid-turn, which reads as a hang
exactly when the page most needs to look alive.

Verified rather than assumed, six behaviours: the fingerprint is stable across
calls; a build round-trips through storage and decodes to a real image (51%
non-black); a different fingerprint misses; saving a new key evicts the old; and
appending one comment to one scene file moved the fingerprint from 125-f842b05e
to 125-c056d7b9, which is the invalidation working end to end.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 07:19:22 +02:00
.claude Phase 0: determinism spine 2026-08-05 10:59:30 +02:00
flow-state Cache the gallery against a fingerprint of the source that built it 2026-08-18 07:19:22 +02:00
magic-mirror Tweak: fireplace mantel and rat hole size 2025-11-20 22:32:01 +01:00
party-cathedral Tweak: minor fixes of areas 2025-12-29 21:54:25 +00:00
party-stage Feature: Drugged Out Flow visualizer 2026-05-24 14:41:15 +02:00
sparkles Initial commit. 2025-11-08 16:05:55 +01:00
tv-player Tweak: books levitating too often 2025-11-17 23:01:38 +01:00
README.md Initial commit. 2025-11-08 16:05:55 +01:00

Music Video Generator

After I'm done producing a music track, I still need to create a music video for it. Otherwise, I can't upload it to a video sharing site.

This is a library of music video "generators", anything that can be recorded along with a music file to produce a music video. Usually, this means a dynamic HTML page with some kind of dynamic visuals.