Particle Based Fluid Simulation