Horizontal slabs torn loose.
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 row = floor(vUv.y * uRows); float seed = rand(vec2(row, floor(uTime*2.0))); // Fraction of rows that ever shift now scales with amount — at max, // nearly every row is in play instead of a fixed ~30% ceiling. float thresh = 1.0 - clamp(uAmount, 0.0, 1.0) * 0.94; float shift = (seed-0.5) * uAmount * step(thresh, seed); gl_FragColor = texture2D(uTex, vec2(fract(vUv.x + shift), vUv.y)); }