A field of drifting embers that surges on the beat and lights the frame from within.
GLSL fragment shader
The effect's own code. The uniforms and helpers above it — uTex, uFeedback, the depth proxy, the frame ring, depthAt(), timeAt() — are the same header every Ether-MOSH shader opens with, and are documented once on the registry rather than reprinted on all 143 pages.
void main(){ vec4 baseTex = texture2D(uTex, vUv); vec3 base = baseTex.rgb; float cells = 8.0 + uDensity * 30.0; vec2 p = vUv * cells; p.y -= uTime * (0.25 + uDrift * 1.1); // Flow pushes the field around, so the embers are carried by whatever is // moving in shot instead of falling on a fixed track. p += flowAt(vUv) * 2.4 * uDrift; vec2 cell = floor(p); vec2 f = fract(p); float h = rand(cell); if (h < 0.55) { gl_FragColor = vec4(base, baseTex.a); return; } vec2 c = vec2(rand(cell + 3.1), rand(cell + 7.7)); float d = length(f - c); float spark = exp(-d * (26.0 - uGlow * 13.0)); // Each ember has its own phase, so the field twinkles rather than pulsing // as one sheet, and the beat surges all of them together on top of that. float tw = 0.55 + 0.45 * sin(uTime * (2.2 + h * 5.0) + h * 26.0); vec3 col = mix(vec3(1.0, 0.55, 0.18), vec3(1.0, 0.88, 0.6), h); gl_FragColor = vec4(base + col * spark * tw * uGlow * (1.0 + uPulse * 1.5), baseTex.a); }