Megascans assets were brought into Houdini as a start point for the simulations. The lava was emitted from deformed geometry outside of the camera view. The viscosity attribute was generated from a custom temperature attribute on the source geometry, and transferred onto the particles. The temperature attribute was used to map emission and reflection in shading as well.
An incredibly turbulent smoke sim was created based on the meshed lava to use for heat distortion in Nuke.
The ocean was simulated using the guided ocean layer. The bounds of the sim extended just past the camera view, so no extension of the ocean geometry was necessary. A volume was created based on the ocean mesh to be used in rendering for refraction. The whitewater was created based on the compressed cache for the ocean. A wrangle was used to cull velocities above a certain threshold to make the sim a bit more consistent.
Parts of the ocean were isolated to create the source for the steam, and then fed into a pyro solver to do the actual sim.
The project was rendered in Redshift in Houdini. The temperature attribute from the lava was used to map emission and reflection in a standard Redshift material. The lava mesh was also turned into a mesh light. The height of the waves was used to build a shader to render the ocean surface with varying diffuse color and weight. The ocean volume was rendered only in refractions with a uniform volume shader. The whitewater was rendered as particles with a translucent shader. The steam was cached out as VDBs, brought back in, and rendered as volumes.