A Simple Boiling Module

Theodore Kim1 and Mark Carlson2
IBM TJ Watson Research Center1
Walt Disney Animation Studios2


Recent efforts to visually capture the phenomena of boiling have proposed monolithic approaches that extend the basic techniques underlying existing fluid solvers. In this work, we show that if we instead treat boiling as a separate computational module to be loosely coupled to an existing solver, a very easy to implement, highly efficient algorithm can be designed that produces excellent visual results, even on coarse (643) grids. The algorithm is also highly SIMD-amenable, allowing the boiling computation to be farmed out to a GPU or Playstation 3 Cell processor. Our algorithm takes less than 100 lines of commented, readable C++, and can be integrated into an existing particle level set fluid solver with virtually no modifications. A serial implementation consumes between 3-5% of the overall running time, and a preliminary SIMD implementation shows that a 643 simulation runs at 130 FPS, making the computational cost of the module totally negligible.

Full Paper:       Appearing in ACM SIGGRAPH / Eurographics Symposium on Computer Animation 2007 [3.5 MB PDF]

Source code:       A 2D implementation of the module. Includes both a Visual C++ Express solution file and a Makefile. [ZIP] or [TAR.GZ]

Movies:       [5.8 MB MOV] Water boiling in a beaker
[10.1 MB MOV] Boiling water from a faucet
[16.8 MB MOV] Hot spheres in a tank of water