Fluid is a 3d grid-based fluid engine based on Navier-Stokes equations (discretized using a finite difference approach).
The engine reads the scene configuration from a text file and shows the simulation progress using an OpenGL 3D viewport.
A buoyancy simulation engine (for non-uniform mass distribution rigid bodies) has been developed too.
SIMULATION
The first fluid version was a 2D fluid-engine based on discretized Navier-Stokes equation.
The fluid configuration inside the finite volume was defined using a script-based approach.
In the figures below there's an example of big water drops falling into a pool.
3D SIMULATION
The 3D version is a straightforward estension of the previous one.
Equations are discretized and solved over a 3D grid. Velocity and pressure are computed over grid voxels faces.
Masseless particles are used to track the fluid motion. Voxel-based ostacles can also be very easily simulated.
In the figure below there's the 3D fluid representation as shown in the OpenGL visualization.
FLUID SURFACE AND RENDERING
The fluid surface is represented as a polygonal mesh derived from the particles position using an isosurface extraction method.
The mesh can be exported for rendering with several rendering engines. simulation test has been rendered using a patched version of POV-RAY
(supporting photon mapping).