I've made a bit of progress on integrating FLUIDS v.2 into Bullet.
Currently, only basic one way interaction is implemented. Fluid particles are run through
a discrete collision check, and are accelerated out of btCollisionObjects if collisions are
detected. Since the detection is discrete, it is highly likely that fluid particles will tunnel
through shapes without volume, such as the btHeightfieldTerrainShape or triangle mesh.
Progress/demo at:
https://github.com/rtrius/Bullet-FLUIDS(Requires bullet-2.80-rev2531 and Visual C++ 2005/2008/2010)
Changes as of
2012 May 20:
(see git commit log for more recent changes)
-Remove: demo code
-Remove: CUDA support
-Remove: OpenGL function calls, GLUT dependence(in FluidSystem)
-Remove: class GeomX (manager of several arbitrarily sized arrays)
-Remove: class PointSet (particle system)
-Remove: unused files(esp. files in fluids/common)
-Remove: unused variables
-Various bugfixes
Grid cell allocation(use m_Resolution)
Stack overflow(on allocation of FluidSystem)
-Convert coding style towards Bullet
-Separate emitter from FluidSystem
-Reimplement Vector3DF as a subset of btVector3
(not yet replaced due to various issues)
-Add: (unoptimized) marching cubes rendering
-Add: OpenCL port(direct C++ port; not optimized for GPU)
-Add: FluidAbsorber(destroys fluid particles)
-Add: rudimentary Fluid-btCollisionObject interaction(no dynamics)
(collisions are somewhat unstable)
Issues in tracker:
Add SPH fluid interaction with rigid body / cloth simulation
http://code.google.com/p/bullet/issues/detail?id=296 Add SPH fluid iso-surface generation
http://code.google.com/p/bullet/issues/detail?id=297