S-09

Water Ripple Scroll

Three.js fragment shader: 3 overlapping radial waves displace a texture. Amplitude follows sin(progress·π).