VFX Artist Shared Advanced Whitewater Solver Based on Wētā's Research
Alexander Vasilenko has shared Guided Bubbles & Wet Foam Solver, a Houdini whitewater solver informed by Wētā FX research. Its distinguishing features are two-way-coupled underwater bubbles and separa
Alexander Vasilenko’s Guided Bubbles & Wet Foam Solver is a whitewater solver for Houdini that calculates underwater bubbles and surface foam in different ways. Rather than simply placing particles on top of a basic fluid simulation, it handles bubble movement by applying two-way coupling, in which bubbles beneath the water and the surrounding fluid affect each other.
A Structure Where Bubbles Also React to the Water’s Flow
Wētā FX’s research presents a method for treating bubbles as individual air particles and coupling them with the surrounding fluid. Vasilenko’s implementation follows this approach by locally resimulating the fluid around the bubbles. Compared with the way a conventional Houdini whitewater solver unidirectionally pushes particles through the fluid velocity field, the difference is that the bubbles feed back into the fluid velocity.
“Wet Foam” Is Calculated Separately on the Surface
When bubbles reach the surface, they transition into foam, which is processed using an SPH method on the surface’s 2D manifold. Viscosity, cohesion, and friction with the water surface are applied; after forces in the direction of the surface normal are removed, the particles are projected back onto the surface. This makes it possible to control independently the way foam clings to and flows across the water.
A Visual Choice Rather Than a Literal Reproduction of the Research
In the cohesion calculation, the creator allows users to choose not only the active-particle volume scale from the original paper but also the volume scale of neighboring particles. According to the creator, the latter makes foam clusters look more natural. In other words, this solver takes the physical model from Wētā FX’s research as its starting point, then extends it into a Houdini implementation that allows the density and clumping of foam required for a shot to be adjusted.