This thesis presents a simulation method for creating animations of gases and liquids that enhances the adaptability over current simulators within the computer graphics community. The method achieves adaptability in element size and shape by discretizing the domain with tetrahedra rather than regular hexahedra, the standard element shape in computer graphics. I also describe a method which allows the discretization to adapt arbitrarily from time step to time step without computational or numerical smoothing penalty. Additionally, I demonstrate a method to augment the fluid simulator with a rigid body simulator such that the fluid and rigid body simultaneously effect one another. Together these capabilities allow for complex scenarios to be simulated with a high level of detail while maintaining practical computation time, memory use, and ease of implementation.