These images are all from a part of my undergraduate thesis work on
physically based water simulation. This is the basic water simulator. It
simulates the interaction of external forces on a square pool of water
roughly 40cmx40cm with a small obstacle in the middle. From top left to
bottom right, the view are Triangular Mesh surface (with bad normals,
anyone have a good way to calculate per vertex normals for triangle
strips?) which runs in realtime. The second is displaying the water flow.
The third is a wireframe of rendering with a NURBS surface and the fourth
with the filled surface. I didn't have time to write my own NURBS
renderer so I get something around 3 fps on a PIII 700 with a Geforce DDR
card in it. This part of my system is only for appearence however.

The water system uses columns of water, the pressure differentials are
calculated between columns and water is transfered based on those. There
are several problems with this method, but it is useful for the
simulations I am using it for. I have extended it to also flow downhill
and have created a river simulation using my extensions. This pond is
made up of almost 1600 columns of water each 1cmx1cm and 10cm high at
rest. The obstacle is made of columns who cannot hold water and whose
base is much higher than their neighbors tops, so that they won't transfer
water. Waves do rebound off these obstacles. Videos (and pretty much
nothing else) can be found at www.cs.virginia.edu/~swl7m