the wave field
A GLSL field of filaments, running on the wallpaper and behind Spotify from one authored shader — and the version that taught this project to measure instead of look.
three approaches, two failures
The reference is the PS3 XMB: many thin threads of light crossing a broad
diffuse haze. Two standard recipes missed it in different ways.
Domain-warped fBm. The usual "pretty background". Reads as
smoke. Nothing like the reference.
A few wide gaussian bands. Better structure, right tonal
range — still wrong. A wide gaussian produces fog: a smear that is
brighter in the middle, not a thread that glows.
Many thin filaments. What actually matches, and the trick
is that one gaussian cannot do it. A filament is a tight bright core plus a
much wider, much fainter halo:
float bright = exp(-d2 / (core * core)); // thin bright thread
float bloom = exp(-d2 / (halo * halo)); // wide faint glow
return bright + bloom * 0.22;
Each strand is two sines at a non-integer frequency ratio, so it reads as
cloth rather than as a test pattern, and thickness tapers down the frame to give
the field a near and a far edge.
the failure that only measurement caught
The first version looked correct in a screenshot and was a still
image in motion. At the specified drift rate, over a palette spanning
only 13–42 in 8-bit, the movement quantised away entirely:
zero changed pixels over 30 seconds
It would have photographed as a working shader and been a lie. The habit
that caught it — screenshot, difference two frames, count — became the standard
for everything visual in this system afterwards. Short-interval differencing
tests propagation; long-interval tests drift. They catch different lies.
one shader, two runtimes
The same xmb.frag runs on the desktop wallpaper through Qt and
behind Spotify through WebGL2. The generator retargets it by rewriting
only the header — version pragma, uniform block, layout qualifiers —
so there is exactly one authored copy and the two cannot drift.
The couplings differ on purpose. On the desktop the field answers
interaction: a workspace switch fires a ripple from a point. Behind
Spotify it answers music, which has no point of origin, so beats surge
the drift of the bands instead. A ring expanding across the field reads as
something drawn over it rather than as the field moving.