Rigid Bodies Project

Contacts: Jon Su and Elliot English
In conjunction with the Pervasive Parallelism Lab (PPL)

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.

Scalable Contact
The major problem with current contact algorithms is that they scale very poorly when dealing with stacks of objects. For this project we are investigating different preconditioners for the LCP that arises in most formulations.
Realtime Simulation
In order to support realtime simulation, time evolution needs to be stable, thus avoiding spurious energy gain due to approximations in the numerical integration scheme. In the case of rigid bodies we clamp energy during both torque free numerical integration and collisions guaranteeing a stable simulation.
Scalable Simulation
One of our goals is to support scenes with many rigid bodies composed of highly detailed geometry that is too large to fit into the memory on a single machine. This is often the result of objects fracturing. We are exploring distributed computing solutions, beginning by incorporating MPI into our rigid body engine as well as multithreading locally executed routines.