The interference of several waves over a cycling palette - the demoscene classic, done with restraint. The palette is the whole trick: two or three tones looped on themselves, never a saturated rainbow, and the hue travels as much as the brightness. That is what keeps it iridescent instead of kitsch.
The field is computed in a low-resolution buffer and scaled up bilinearly, which is what gives the soft gradient and the low cost. Directional waves are split into products of sines so there is not a single trigonometric call in the inner loop, and a fixed dither kills the quantisation rings.
Six palettes from haze to ember, plus your own three colours. Scale, speed, wave count, contrast, colour drift and pixel size are all yours.
Canvas, nothing loaded from outside. Honours prefers-reduced-motion and freezes on the Framer canvas.
The interference of several waves over a cycling palette - the demoscene classic, done with restraint. The palette is the whole trick: two or three tones looped on themselves, never a saturated rainbow, and the hue travels as much as the brightness. That is what keeps it iridescent instead of kitsch.
The field is computed in a low-resolution buffer and scaled up bilinearly, which is what gives the soft gradient and the low cost. Directional waves are split into products of sines so there is not a single trigonometric call in the inner loop, and a fixed dither kills the quantisation rings.
Six palettes from haze to ember, plus your own three colours. Scale, speed, wave count, contrast, colour drift and pixel size are all yours.
Canvas, nothing loaded from outside. Honours prefers-reduced-motion and freezes on the Framer canvas.