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.