Checkout the code: https://github.com/martinRenou/threejs-caustics
Implementation details: https://medium.com/@martinRenou/real-time-rendering-of-water-caustics-59cda1d74aa
Shark mesh from AzurPoly on Sketchfab (CC Attribution)
Rock mesh from Dreyx on Sketchfab (CC Attribution)
Plant mesh from vaporclaws on Sketchfab (CC Attribution)
Skybox texture from BabylonJS (Apache-2.0)