Concentric water ripple.
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); // A gentle low end, with broad folds at full strength; zero stays identity. float reach = uAmount * (1.0 + 1.5 * smoothstep(0.6, 2.0, uAmount)); float w = sin(r*uFreq - uTime*4.0) * reach * 0.04; gl_FragColor = texture2D(uTex, vUv + normalize(p+0.0001)*w); }