We want to draw your attention to the following SIGGRAPH 2012 paper, called “Mass Splitting for Jitter-Free Parallel Rigid Body Simulation” by Richard Tonge (NVIDIA), Feodor Benevolenski (NVIDIA) and Andrey Voroshilov (NVIDIA).
We present a parallel iterative rigid body solver that avoids common artifacts at low iteration counts. In large or real-time simulations, iteration is often terminated before convergence to maximize scene size. If the distribution of the resulting residual energy varies too much from frame to frame, then bodies close to rest can visibly jitter. Projected Gauss-Seidel (PGS) distributes the residual according to the order in which contacts are processed, and preserving the order in parallel implementations is very challenging. In contrast, Jacobi-based methods provide order independence, but have slower convergence.
We accelerate projected Jacobi by dividing each body mass term in the effective mass by the number of contacts acting on the body, but use the full mass to apply impulses. We further accelerate the method by solving contacts in blocks, providing wallclock performance competitive with PGS while avoiding visible artifacts. We prove convergence to the solution of the underlying linear complementarity problem and present results for our GPU implementation, which can simulate a pile of 5000 objects with no visible jittering at over 60 FPS.
As you may see, one of the main features of this solver is fast and stable simulation without jittering, even with high number of contacts.
Thanks to Jesse Stiller for the link.