A seam tears across reality and the two halves pull apart at different depths, light bleeding from the rift.
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(){ float a = uAngle * 3.14159265; vec2 n = vec2(cos(a), sin(a)); // Signed distance from the seam line through the frame centre. float t = dot(vUv - 0.5, n) - (uSeam - 0.5); float side = t < 0.0 ? -1.0 : 1.0; float d = depthAt(vUv); // Depth scales the pull, so the subject travels further through the rift // than the wall does — the tear has volume rather than being a flat cut. float push = side * uAmount * (0.035 + d * 0.16); vec2 uv = clamp(vUv - n * push, 0.0, 1.0); vec4 srcTex = texture2D(uTex, uv); vec3 c = srcTex.rgb; // Rift edge: exposure blows out where the two halves separated, which is // what sells it as light escaping from behind the image. float edge = exp(-abs(t) * (34.0 - uGlow * 22.0)); c += edge * uGlow * (0.55 + uPulse * 0.45) * vec3(0.75, 0.86, 1.0); // uv already carries the rift's own pull, so a transparent source's // silhouette tears apart along with its color. gl_FragColor = vec4(c, srcTex.a); }