For compositing, I used Nuke. Its Defocus node allowed me to achieve smooth and realistic depth transitions in several shots.



As for fluid simulation, considering the time cost of using Houdini, I opted for Blender’s FLIP Fluids add-on instead. With added material and texture work, I was able to produce satisfying water surface effects.