Bullet SimpleConstraintSolver

Post Reply
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Bullet SimpleConstraintSolver

Post by Erwin Coumans »

About the Bullet SimpleConstraintSolver:

The solver uses a Propagation Method, from Baraff
"Analytical Methods for Dynamic Simulation of Non-penetrating Rigid Bodies". Bullet SimpleConstraintSolver applies penalty impulses to recover from penetration.

http://www-2.cs.cmu.edu/~baraff/papers/sig89.pdf
See section "Simultaneous Collisions", propagation method.

Implementation: http://www.continuousphysics.com/Bullet ... tml#l00054

The friction cone approximation is applied inside the propagation iterations too:
the impulse magnitude is related to the current applied impulse this iteration.
Implementation: http://www.continuousphysics.com/Bullet ... tml#l00213

At the moment, the error correction term is merged with the velocity correction term, however this adds energy. I'm considering splitting this.
See Michael Clines paper "Post-Stabilization for Rigid Body Simulation
with Contact and Constraints"

About the Baumgarte stabilization, basically the term 'g', is a positional error term.
This position error can be caused by numerical drift penetration due to bad time of impact estimation (no estimation at all;-).
The basic idea is that you either merge the velocity and positional terms in 1 lcp, or split it.

At the moment, the convergence of the SimpleConstraintSolver is not great, but it works. I will add some comparison demos with ODE quickstep soon.
Post Reply