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.
Links
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.
Meshing
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.