Interactive Physical Based Simulations
Integration of a 2D fluid solver and a rigid body engine in our virtual environment. The rigid body engine is based on jiggle by Danny Chapman. It is modified as a FlowVR module, receiving external objects descriptions such as the terrain or the distance field to the user's body .By tracking the position of the head we can attach a virtual hair simulation to give the user a new look! (hair simulation by Florence Bertails, head tracking by Clément Ménier)
3D Fluid Solver
Implementing a 3D fluid solver is not trivial. I used the Marker-And-Cell algorithm as described in Mark Carlson's thesis. A simple 16x16x16 scene running on one CPU served as intial testing environment.
Using MPI for parallelization a larger scene was simulated with a grid of 32x32x64 and approximately 200000 particules, running in real-time on 8 CPUs.
Coupling Multiple Simulations
Really complex and interesting environments can be created by combining multiple types of objects interacting together. This however is a difficult problem, specially if one want to run it in real time. Some simple tests were done using the previously developed simulations. Each test runs in realtime using at most 16 CPUs.One Simulation (Fluid or Rigid Bodies)
Rigid -> Fluid One-way Coupling
Rigid <-> Fluid Two-way Coupling
This interaction uses the rigidfluid algorithm of Carlson et al from SIGGRAPH 2004.
Rigid/Fluid/Mass-Spring N-way Coupling
Adding interactions with the user's body
(Failed) Attempts
Developing physical based simulations always means experiencing surprising results where objets and particules have interesting comportements, just not the one you expected...
Ok let's add a ragdoll in the rigid->fluid simulation. Oh wait he is drowning :(
We'll activate the two way coupling so that he will float...
Well, now he is moving, but still underwater! Maybe he's a diver ;)
Back to Gallery