Floating bokeh particles.
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 c = texture2D(uTex, vUv); // Was effectively invisible: only a tenth of cells held a mote and each was // a sub-pixel dot, so the whole effect measured ~0.001 change at full // strength. Bigger, softer, far more of them, with a warm glow instead of a // flat white pixel. vec2 p = vUv*uDensity; vec2 ip = floor(p), fp = fract(p) - 0.5; vec2 off = (vec2(rand(ip), rand(ip+5.3)) - 0.5)*0.6; fp -= off + vec2(sin(uTime*0.5+rand(ip)*6.28), cos(uTime*0.4+rand(ip)*6.28))*0.25; float d = length(fp); float seed = rand(ip+1.7); float size = mix(0.16, 0.42, rand(ip+9.1)); float mote = smoothstep(size, 0.0, d) * step(0.45, seed); // Soft halo around each mote so they read as out-of-focus particles. mote += smoothstep(size*2.2, 0.0, d) * step(0.45, seed) * 0.35; vec3 tint = mix(vec3(1.0, 0.94, 0.82), vec3(0.82, 0.92, 1.0), rand(ip+4.4)); gl_FragColor = vec4(c.rgb + tint*mote*uAmount*1.6, c.a); }