3D realtime water surfaces using LBM [Videos & Demo]

Hi,
This site is great!!
I want to show to this community some videos captured from my application, a physics-based graphic engine supporting interactive animations of free water surfaces at real-time.
The basic algorithm is based on a lattice-Boltzmann model of the shallow-waters equations and the interaction between the surface and external objects is achieved by means of source terms. The engine is capable of produce scenes of ponds whose surface reacts to perturbations
introduced by the user or controlled by the computer, like drizzle or the stirring of a finger
The tool was applied to produce interactive animations of free water surfaces at real-time.

Youtube Videos:

Realtime Fluid Simulation [1]

Realtime Fluid Simulation [2]

Solid-Fluid Interaction

Fluid simulation with touchscreen interaction

Demo Application (Requirements: Graphics Card supporting Shader Model 2.0)

3D Realtime LBM Demo

Just my two cents :slight_smile:
Regards,

Cristian

Wow! Your graphics engine is pretty impressive. I particularly like the touchscreen demo… Which shallow water model do you use? And, do you provide an open-source version of your engine?

NB: I think there’s a small issue with the download you provide, because the downloaded file has a zip extension, while it really is a rar file.

Thanks Jonas!
The basic algorithm used is based on a lattice-Boltzmann model of the SWE (Zhou 2004), although here is the (semi complete) technical data of my implementation:

-Fluid Models Supported: BGK / Entropic Model / Zhou’s SWE
-Language: Codegear Delphi 2007
-Grid: The implemented grid is D2Q9
-Realtime Grid Size: 200x200 Grids (including reflection, refraction, cubemaps, user interaction, etc.)
-Boundary Conditions: Zou/He, bounce-back, periodic.
-Parallelism: -

I’ll release the project to the achademic/scientific community. I’m thinking on release based in a DLL with header format or source code of the physics core.
The graphics engine, called Impromptu is a more large project used in our simulation projects, but maybe i can release
some “simple to use” graphic subsystem. Something like:

renderLBMState(LBMgrid); :slight_smile:

The real interest on this is use it for realtime applications, call it from any application and rendering the results in the client application.
You downloaded the executable demo? What performance you obtained?

References:
-Zhou J. G., Lattice Boltzmann methods for shallow water flows, Springer-Verlag, 2004.

NB: I think there’s a small issue with the download you provide, because the downloaded file has a zip extension, while it really is a rar file.

Yes, it does not matter, some server’s issue. :S

dear cristiangb
I saw your demo but I can’t download your video
I saw in your demo a touch screen picture.
it is wonderful
is it really correct?
I think that grasses in back ground must be move but only water moves in my picture
do you check that with real sample?

seyedmehdi Wrote:

dear cristiangb
I saw your demo but I can’t download your video

Sorry, what video? The link that i provide is a executable demo

I saw in your demo a touch screen picture.
it is wonderful
is it really correct?

Yes, i made some tests on a HP TX2000 touchscreen notebook. If you run the demo on a touchscreen device, you can play with it. :slight_smile:

I think that grasses in back ground must be move
but only water moves in my picture
do you check that with real sample?

I used different cubemaps for calculates reflection and refraction in the shaders of my demos.

cristiangb Wrote:

Sorry, what video? The link that i provide is a executable demo

these videos:

Realtime Fluid Simulation [1]

Realtime Fluid Simulation [2]

Solid-Fluid Interaction

Fluid simulation with touchscreen interaction

thanks

New demo is available HERE

http://img294.imageshack.us/img294/925/newversion.jpg
New features:
-Config Screen Properties (resolution, Aspect, etc)
-Basic Water Viscosity
-Grid Size
-Different Cubemaps included
-Orthogonal View Mode

I’m working on some optimizations, future CUDA DLL version, etc. Stay in touch.

Unfortunately, the exe crashes when I start it (Win XP, 32 bit).

Hi Timm, thanks for test it!
Please set in your “Regional Settings” (assuming that you are using windows) the decimal and thousand separators to:
decimal: .
thousand: ,

In the new version i promise fix that.

Btw, what are your system specifications?