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