Holographic lenticular foil. The image's own relief catches a sweeping light, and micro-grooves split it into a diffraction rainbow that flares on every hit.
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 base = texture2D(uTex, vUv); vec3 W = vec3(0.299, 0.587, 0.114); // 1.5px taps: a one-pixel gradient is mostly sensor noise and makes the // foil sparkle everywhere instead of following the shapes. vec2 px = 1.5 / uResolution; float lL = dot(texture2D(uTex, vUv - vec2(px.x, 0.0)).rgb, W); float lR = dot(texture2D(uTex, vUv + vec2(px.x, 0.0)).rgb, W); float lD = dot(texture2D(uTex, vUv - vec2(0.0, px.y)).rgb, W); float lU = dot(texture2D(uTex, vUv + vec2(0.0, px.y)).rgb, W); float luma = dot(base.rgb, W); vec3 n = normalize(vec3((lL - lR) * 4.0, (lD - lU) * 4.0, 0.3 + 0.7 * (1.0 - uRoughness))); // The light wanders on its own and gets shoved sideways by the beat, so // the rainbow visibly rolls across the surface on a hit. vec3 L = normalize(vec3(sin(uTime * 0.75 + uPulse * 2.0), cos(uTime * 0.5), 0.8 + 0.4 * sin(uTime * 0.25))); vec3 H = normalize(L + vec3(0.0, 0.0, 1.0)); float ndotl = max(dot(n, L), 0.0); float ndoth = max(dot(n, H), 0.0); // Integer cycle counts on both axes keep the phase periodic in vUv. vec2 k = vec2(floor(uDensity), floor(uDensity * 0.382)); float groove = dot(vUv, k) + uTime * 0.15; float phase = groove + dot(n.xy, normalize(k + 0.001)) * 3.0 + ndoth * 12.0 + uPulse * 0.5; vec3 spectral = 0.5 + 0.5 * cos(6.28318 * (phase + vec3(0.0, 0.333, 0.667))); float fresnel = pow(1.0 - max(n.z, 0.0), 3.0); float spec = pow(ndoth, mix(128.0, 8.0, uRoughness)) * (1.0 + uPulse * 1.5); float irid = min(uAmount, 2.0); vec3 col = base.rgb + spectral * (fresnel + 0.3) * (ndotl + 0.2) * irid; col += spec * spectral * 1.8 * uSheen * min(irid, 1.0); col += spectral * luma * uPulse * 0.3 * irid; gl_FragColor = vec4(clamp(col, 0.0, 1.0), base.a); }