June, 2018 – Integrated with NVIDIA GVDB Voxels ** NEW **
Fluids v.3 has been integrated as a sample into the NVIDIA(R) GVDB Voxels framework for sparse volumes. The sample gFluidSurface can be built as part of the GVDB Voxels 1.1 release which is available open source here. This sample uses Fluids v.3 as a particle-based fluid simulation where the sparse GVDB volume builds and renders a surface on-the-fly from the particles.
March, 2014- Demo available on Github
Fluids v.3 is available as a stand-alone demo on github here. This version is essentially identical, but is much easier to build. It has the following new features:
- Easier to build. No more dependency on freetype or glut.
- Interactive on-screen GUIs
- Upgraded to run on CUDA 5.0 and 5.5
- Profile timings. Now includes GPU markers for profiling on the GPU using NVIDIA’s free NSight tool.
- Bug fixes noticed by users
Dec, 2012 – Downloads for Fluids 3.1 available
- On Github: https://github.com/rchoetzlein/fluids3
To create a local copy do:
git clone https://github.com/ramakarl/fluids3.git
Fluids v.3 has the following system requirements:
- A CUDA-capable NVIDIA graphics card, with Compute capability 2.1 or higher.
- OpenGL 3.0
- Windows 7 or higher
Run the fluids_v3.exe to start the program.
Fluids v.3 reads the scene.xml file to setup simulation examples.
To see the current scene being run, press the ‘H’ key, and [, ] keys to change the scene.
Use the N, M keys to change number of particles, up to the limit of GPU memory and the domain volume of the scene. (Use scene 2, Large Ocean, to allow volumes up to 8 million particles)
Scene files have two sections, <Fluids> and <Scene> .
The <Fluids> section is read first, and typically sets fluid parameters for all scenes. The <Scene> section applies changes for a given scene id.
The following are all the available parameters, and all may appear in either the <Fluid> or <Scene> sections.
Scene parameter tags:
|DT||Simulation time step||0.003|
|SimScale||Simulation scale (see website)||0.005|
|Viscosity||Fluid viscosity coefficient||0.35|
|RestDensity||Fluid rest density||600.0|
|Mass||Fluid particle mass||0.00020543|
|Radius||Fluid particle radius, only for boundary tests||0.02|
|IntStiff||Fluid internal stiffness (non-boundary)||1.5|
|BoundStiff||Fluid stiffness at boundary||50000.0|
|BoundDamp||Fluid damping at boundary||100.0|
|AccelLimit||Acceleration limit (for stability)||150.0|
|VelLimit||Velocity limit (for stability)||3.0|
|PointGravAmt||Strength of point gravity||0|
|PointGravPos||Position of point gravity||0,0,0|
|PlaneGravDir||Direction of plane gravity||0,-9.8,0|
|GroundSlope||Slope of the ground (Y- plane)||0|
|WaveForceFreq||Frequency of wave forcing||0|
|WaveForceMin||Amplitude of wave forcing from X-plane||0|
|WaveForceMax||Amplitude of wave forcing from X+ plane||0|
|Name||Name of scene example|
|Num||Number of particles to simulate||65536|
|VolMin||Start corner of Domain Volume||-100,0,-100|
|VolMax||End corner of Domain Volume||100,100,100|
|InitMin||Start corner of Initial Particle placement||-90,10,-90|
|InitMax||End corner of Initial Particle placement||90,90,90|
Once started, the following keyboard commands are available:
|H||Turn scene info on/off|
|N, M||Change number of particles|
|[, ]||Change example scene (loaded from scene.xml)|
|F, G||Change algorithm (CPU, GPU, etc.)|
|J||Change rendering mode (points, sprites, spheres)|
|C||Adjust camera (using mouse)|
|L||Adjust light (using mouse)|
|A,S,W,D||Move camera target|
|1||Draw acceleration grid|
|2||Draw particle IDs (be sure # < 4096 first)|
|~||Start video capture to disk (tilde key)|
|-, +||Change grid density|