Radial mirror symmetry with drifting rotation — a kaleidoscope that breathes.
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(){ vec2 rel = vUv - 0.5; rel.x *= uResolution.x / max(1.0, uResolution.y); float a = atan(rel.y, rel.x); float r = length(rel); // Fold the angle into one wedge, then mirror alternate wedges so the seams // meet instead of butting — a kaleidoscope is mirrors, not copies. float seg = 6.2831853 / max(3.0, uSlices); a = mod(a + uTime * uSpin * 0.5 + uPulse * 0.4, seg); a = abs(a - seg * 0.5); r *= 1.0 - uZoom * 0.45; vec2 uv = vec2(cos(a), sin(a)) * r; uv.x /= uResolution.x / max(1.0, uResolution.y); gl_FragColor = texture2D(uTex, clamp(uv + 0.5, 0.0, 1.0)); }