Liquid simulations for computer animation often avoid simulating the air phase to reduce computational costs and ensure good conditioning of the linear systems required to enforce incompressibility. However, this free surface assumption leads to an inability to realistically treat bubbles: submerged gaps in the liquid are interpreted as empty voids that immediately collapse. To address this shortcoming, I will present an efficient, practical, and conceptually simple approach to augment free surface flows with negligible density bubbles. Our method adds a new constraint to each disconnected air region that guarantees zero net flux across its entire surface, and requires neither simulating both phases nor reformulating into stream function variables. Implementation of the method requires only minor modifications to the pressure solve of a standard grid-based fluid solver, and yields linear systems that remain sparse and symmetric positive definite.
In our evaluations, solving the modified pressure projection system took no more than 10% longer than the corresponding free surface solve. We demonstrate the methodís effectiveness and flexibility by incorporating it into commercial fluid animation software and using it to generate a variety of dynamic bubble scenarios showcasing glugging effects, viscous and inviscid bubbles, interactions with irregularly-shaped and moving solid boundaries, and surface tension effects.