Convert to polar coords then fold — alien topology.
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 p = vUv - 0.5; float r = length(p)*2.0; float a = atan(p.y, p.x) + uTwist*r; vec2 polar = vec2(a/6.2831853 + 0.5, r); polar = abs(fract(polar)*2.0 - 1.0); vec2 uv = mix(vUv, polar, uAmount); gl_FragColor = texture2D(uTex, uv); }