# How to create a shallow underwater scene?

**URL:** <https://discourse.threejs.org/t/how-to-create-a-shallow-underwater-scene/62687>\
**Category:** Questions\
**Tags:** textures, materials, geometry\
**Created:** [March 12, 2024, 5:33pm UTC](https://discourse.threejs.org/t/how-to-create-a-shallow-underwater-scene/62687 "2024-03-12T17:33:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jearthman](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/jearthman/32/45540_2.png) [@jearthman](https://discourse.threejs.org/u/jearthman)\
**Post date:** [March 12, 2024, 5:33pm UTC](https://discourse.threejs.org/t/how-to-create-a-shallow-underwater-scene/62687/1 "2024-03-12T17:33:52Z")

</div>

Hi there, I just finished Discover Three JS and I want to try to contruct a shallow underwater scene I have in mind for an app I want to create. The scene is similar to what can be seen in this video minus the fish ([https://youtu.be/QPGbkjrdD\_s?si=liQuhL3Qg6k868Ie](https://youtu.be/QPGbkjrdD_s?si=liQuhL3Qg6k868Ie)).

The big questions I have right now are:

Can I make the creek floor one big mesh or will having a mesh for each rock be fine? Can I programatically create each random rock with boundaries on dimensions?

How do I handle the caustics of the water’s surface on the rocks? Can this be dynamic or will it be too expensive?

---

<div class="post-metadata">

**Author:** ![PavelBoytchev](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/pavelboytchev/32/38639_2.png) [@PavelBoytchev](https://discourse.threejs.org/u/PavelBoytchev)\
**Post date:** [March 12, 2024, 8:32pm UTC](https://discourse.threejs.org/t/how-to-create-a-shallow-underwater-scene/62687/2 "2024-03-12T20:32:46Z")

</div>

This reminds of one ancient WebGL demo by Evan Wallace. I saw it for the first time some 10 years ago and it still amazes me. You can move the ball to make ripples in real time.

[https://madebyevan.com/webgl-water/](https://madebyevan.com/webgl-water/)

[![image](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/6/f/6fa2128eb73a6ff1dc4589a60c367807643cb67a.jpeg)](https://madebyevan.com/webgl-water/)

---

<div class="post-metadata">

**Author:** ![prisoner849](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/prisoner849/32/535_2.png) [@prisoner849](https://discourse.threejs.org/u/prisoner849)\
**Post date:** [March 12, 2024, 8:49pm UTC](https://discourse.threejs.org/t/how-to-create-a-shallow-underwater-scene/62687/3 "2024-03-12T20:49:53Z")

</div>

Hi!  
Maybe these topics will be helpful somehow 🤔 :

- [A fish of splines](https://discourse.threejs.org/t/a-fish-of-splines/25788) (underwater)
- [Logarithmic Spiral](https://discourse.threejs.org/t/logarithmic-spiral/9913) (procedural rocks/stones, not the ultimate solution, but as an idea)

---

<div class="post-metadata">

**Author:** ![jearthman](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/jearthman/32/45540_2.png) [@jearthman](https://discourse.threejs.org/u/jearthman)\
**Post date:** [March 12, 2024, 8:53pm UTC](https://discourse.threejs.org/t/how-to-create-a-shallow-underwater-scene/62687/4 "2024-03-12T20:53:54Z")

</div>

Oh wow, I remember seeing this when I was in college around 2015! Yeah the refraction would be something I’m aiming for. Gonna have to take it one step at a time. Outside of the caustics not much else would be moving in the scene.
