Near things fly outward faster than far things. The room turns inside out around you.
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 d = depthAt(vUv); vec2 dir = vUv - 0.5; // Depth raised to a variable power: at low curve everything moves together // (a plain zoom), at high curve only the nearest surfaces launch. float w = pow(clamp(d, 0.0, 1.0), 0.4 + uCurve * 2.6); vec2 off = dir * w * uAmount * (0.42 + uPulse * 0.5); gl_FragColor = texture2D(uTex, clamp(vUv - off, 0.0, 1.0)); }