Diagonal page-curl ripping the image apart.
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 dir = vec2(cos(uAngle), sin(uAngle)); float d = dot(vUv - 0.5, dir); float wave = sin(d*20.0 + uTime*2.0) * uAmount * 0.06; vec2 uv = vUv + dir * wave; float fold = smoothstep(0.0, 0.3, d - uAmount*0.3); uv += dir * fold * uAmount * 0.2; gl_FragColor = texture2D(uTex, uv); }