KJ Choi (Kwangjin Choi) from FXGear Inc. talked about the node-based water simulation tool Flux, which allows creating some really interesting effects for CGI.
FluX is a stand-alone, node-graph based water simulator. Its key feature is the distributed computing. By distributed computing, it can simulate large-scale water effects involving billions of particles which cannot be simulated in a single host.
For example, it can use 256 cores consists of 16 networked hosts with 16 core CPUs, and 512 Gb memory in total for a single simulation.
Every node used in FluX are all parallelized based on MPI, so there is no bottleneck in parallel node computation.
FluX uses particles and level set methods together for effective simulation of water splashes with fine details.
You can control the liquid motion using emitters, initial states, in/out flux control, collision objects, etc.
Basically, FluX is a distributed, node-graph evaluation engine.
By adding custom nodes to FluX using API or Python scripts, it can be anything in theory.
However, all nodes of FluX is created for water simulation for now.
For corridor demo, we used several hundreds of particles for simulation.
It is a typical dam-breaking simulation. The particles were initially placed behind the corner, and let them flow in gravity and interact with the surrounding geometry. After simulation, the particles are surfaced to get the water surface, and splash/bubble particles are rendered separately to get the final composition of the splashing water.
The shark demo is a good example for showing the power of distributed computing.
It used 1 billion of particles, and took 48 hours with 16 computers.
The demo is created several years ago, but it is still compelling performance even compared to the recent high spec workstations. This highly efficient parallel performance over networked computers may let users to turn old retired PCs into a high-performance simulation farm.