physbam logo

PhysBAM is a multiphysics simulation library, capable of simulating rigid & deformable bodies, compressible & incompressible fluids, coupled solids & fluids, coupled rigid & deformable solids, articulated rigid bodies & humans, fracture, fire, smoke, hair, cloth, muscles, as well as many other natural phenomena.

Background, History, Disclaimer & Copyright, and Bugs
Code Organization
How To Get The Code
How To Contribute A Project
Course Notes

Current Projects

Smoke Smoke simulation is one of the fundamental building blocks on whicha most incompressible fluid simulation is based on. The goal of this project is to provide a simple smoke project that can be used as an example for incompressible flow simulations using the PhysBAM code base. This project will also serve as the base of more complicated projects such as the Water project.

SMP-Optimized Multigrid Poisson Solver Contributed by Eftychios Sifakis (University of Wisconsin-Madison) and Joseph Teran (UCLA) this project provides a highly optimized multithreaded MultiGrid solver for the voxel Poisson equation used in the incompressibility projection of fluids simulations.

OpenGL Viewer The OpenGL viewer is part of the PhysBAM library that displays and analyzes 1D, 2D and 3D simulation data generated from PhysBAM projects in order to facilitate the fast verification and debugging of simulation methods.

Ray Tracing The ray tracer produces high quality renders of PhysBAM simulation data.

Level Sets Level set methods are a popular tool and the basis for many popular numerical algorithms. This project's goal is to provide a standardized format for storing and accessing level sets. This project also builds upon this a suite of level set algorithms, including algorithms for level set construction, visualization, and particle level set. This project is based at UCLA and represents a diverse collaboration among industry and academic groups.

Water Traditionally water simulation has been one of the more important problems addressed by the special effects industry. However, because of the complexity typically associated writing high quality water solvers, there has been a barrier for many users and other applications such as video games that has prevented the widespead use of these visually compelling techniques. Our goal is to provide a simple and customizable interface for both new and old users alike that will allow for the use of high quality water simulation across many fields. Of course we will also focus on advancing the basic techniques to allow for a solver that can handle very high resolution fluid simulations quickly.

Coming soon ...

FTS: Facial Technology & Simulation Contributed by Eftychios Sifakis (University of Wisconsin-Madison) this project will make publicly and widely available all code resources, data, anatomical and animation models associated with his CG simulated face model

Cloth Cloth simulation has become a staple in the special effects industry, with simulation being able to achieve realistic looking cloth with varying material properties, realistic folds and wrinkles, and robust self and object collisions. However, cloth simulation is also incredibly expensive, making it difficult to use in the film industry, and impractical to use in games and other real-time applications. The goal of this project is to reevaluate the algorithms found in modern cloth solvers, and along with utilizing modern hardware, to make film-quality cloth simulation more efficient.

Rigid Bodies With today's ever increasing amount of computational power (graphics cards, multicore processors, streaming processors, clusters, etc.), it is becoming critical for the physics algorithms that PhysBAM relies on to fully utilitize these computational resources. Not only will this push the boundaries of realism in the movie effects industry, but it will also elevate the quality of physics used in more resource-pressed environments, like computer games. In this project, our goal is to reevaluate our rigid body solver to understand what it takes run the movie quality rigid body algorithms of PhysBAM in real-time. The first goal of this effort is to multithread and MPI the code. The other goal of this project is to develop fundamentally new algorithms for handling common rigid body phenomena, such as contact and collisions, keeping in mind that these new algorithms must fit into the parallel framework described in the first goal.