Ocean Plot

Stormy Ocean Simulation Project
At the center of this short film is the largest submarine in the world (it was until February 2023 when it was decommissioned). However, I wanted to show it in hypothetically possible non-military, but rather rescue conditions - while on the water surface, the submarine discovers a life raft in the middle of nowhere at the stormy ocean.
Having started learning Houdini last year after a couple of basic courses, I thought it would be easy enough to do a project with an ocean simulation and a submarine on the surface.

Then I couldn’t even imagine how wrong I was 🙂
But overall I think I did pretty well. Please take a look.

At the center of this short film is the largest submarine cruiser in the world (it was so until February 2023 when the last submarine of Typhoon class was decommissioned). However, I wanted to show it in hypothetically possible non-military, but rather rescue conditions - while on the water surface, the submarine discovers a life raft in the middle of nowhere in the stormy ocean.
From concept to completion, the project progressed as follows.
The initial impulse for the project was the presentation of 'Storm of Possibilities' by Diogo Guerreiro at the SIGGRAPH HIVE 2023 conference. I wanted to make something similar and impressive in the context of a stormy ocean, but I did not want to use a regular yacht or ship for this, so I chose a submarine. In addition, it was interesting to me how the simulation of the ocean surface would behave in conditions where the submarine body is very different from the shape of the hull of a regular ship.
The next stage was previz. For it I created a low poly model of a submarine and a model of a life raft. I prepared 6 shots, added submarine animation, adjusted the camera angles of view and camera movements. At this stage, the project received its main soundtrack.
Next I made a high poly 3D model of the submarine. The model was created in Cinema 4D and then textured in Foundry Mari.
The next step was assembling each shot in Houdini and setting up the simulation. In order to optimize the calculations in each shot, I divided the entire ocean surface into several zones depending on the distance from the camera. In areas that are closer to the camera, the simulation is more detailed, in distant areas — less.
Photo by Jacob
Photo by Kolya
Photo by Oliver
Photo by Leo
Photo by Paul
Photo by Lea
In terms of simulations done for this project, the whole result of the previous simulation or a part thereof was often used as a source for the next one.
So the first thing I needed to do was to simulate the surface of the ocean waves. Then using the surface as a source, I simulated the foam and bubbles on the surface of the waves.
Houdini Whitewater Preview
Turning to the references, I noticed that the wind tears the droplets off the crests of the waves and then they turn into a fine spray.
I needed to reproduce it in the project.
Photo by Jacob
Photo by Kolya
Photo by Oliver
Photo by Leo
For this simulation, as a source I selected the most powerful, i.e. fastest foam particles obtained at the previous step and then using particle simulations I simulated droplets on the crests of the waves.

It was even more interesting with spray particles. Since particles of water spray are very small and are actually water dust, I used smoke simulation to generate the spray — its particles are also very small and behave in the same way as fine dust in the wind. So I took some of the fastest droplets as a source and generated smoke from them to obtain the water spray on the crests of the waves.

In those areas where waves come into contact with a submarine's hull, a huge number of turbulences arise, which leads to the appearance of additional splashes and small waves there.
I wanted to achieve the same effect.

If I had tried to achieve a similar level of detail in the very first step when I was simulating the surface of the ocean waves, I would have had to set detalization to a very high level for the relatively vast ocean surface simulation. I think the result of such a simulation would have taken up many tens of terabytes on the hard drive, or rather many hard drives, and in addition, to calculate such a simulation within reasonable time, I would have required a whole farm of powerful servers like some production studios have. But I don’t have such a budget.

So my path is the path of a compromise.

At the very first stage of simulating the ocean surface, I left a reasonable level of detail, and ran an additional simulation in the narrow area where the ocean touches the submarine's hull to get additional splashes.
Then came the turn of the environment. To emphasize that the action takes place during a strong storm, I added rain, gusty winds and fog, which is actually another smoke simulation on a fairly large scale.
Then I added the background ocean, for this I used procedural Houdini tools instead of simulation. Considering the large distance, the result is quite consistent. The last step was to add the clouds and lightning.
In general, the total size of all caches of all simulations for all 6 shot was only ~17 TB 🙂, and it took about 550 hours (~ 23 days in total) to calculate all simulations on a home workstation.

The next stage was the lighting. I used Solaris for this stage. I decided to keep things to a minimum, so for the lighting I used:
✪ one HDRI, an individual directional light source for the submarine's search light
✪ point light for the resque raft flicker
✪ couple of area lights as a rim light source to make the submarine and the raft stand out a little from the surface of the ocean in the fog.
Workstation Specs
❶ CPU: AMD Ryzen 9 5950X 16 Cores, 32 Threads
❷ RAM: 128 Gb
❸ GPU: Nvidia RTX 3080 12 Gb VRAM
❹ HDD: 20 Tb
❺ Backup: Synology DS920+ RAID1
For rendering I used Karma XPU. Almost each element ( the submarine, the raft, the ocean surface, the sprays, the mist, the rain, the fog) in a shot at the compositing stage was rendered as a separate pass for further flexibility. The entire rendering time of all passes in all shots took 400 hours (~ 16 days). And it added another 250 GB of data to the project. I think that without using a task tracker, it would be difficult for me to plan work on all aspects for each shot epecially simulations and rendering and meet the deadline to submit my entry to the competition.
SideFX Houdini Solaris Stage Rendering
Compositing was done in Nuke. Compared to everything listed above, it was much faster and quite easier to put all the layers together, add a little glow to the light sources, and adjust color correction a bit.
Foundry Nuke Compositing
The final touch was to make quite a simple sound design and audio mixing which I made in Presonus Studio One. Here, to the previously selected music, I added the noise of a storm, waves and a thunder, as well as the sound of a submarine's horn, which signals that a life raft has been discovered.
Presonus Studio One Sound Design
Please feel free to comment on my project. I would appreciate constructive feedback. And if you're interested in asking any questions about this project or anything else, please follow me and contact me on Instagram or LinkedIn.

Thank you for your support and for taking the time to read through my post!

It's all good, Peace!
✌️
Made on
Tilda