Hello!
I am evaluating the possibilities of Bullet Physics, and I would like to understand how the integration of the physics equations with constraints is done. As far as I understand, algorithms for differential algebraic equation (DAE) systems are used.
Does some documentation exist, how physical constraints are translated into DAEs, and how these DAEs are solved? Or, how do you translate the DAEs into ordinary differential equations (ODEs)?
A description of Bullet Physics' approach would be perfect, but any other explanation that provides a reasonable (not too much) amount of theory, is fine.
Thanks
Edi
solving constraints: theoretical background?
-
- Site Admin
- Posts: 4221
- Joined: Sun Jun 26, 2005 6:43 pm
- Location: California, USA
Bullet solves velocity and positional (penetration) constraints using an iterative approach. Iteratively reducing the constraint error is also known as Relaxation.
More formal: the constraint problem is a linear complementarity problem (LCP), and the iterative solution Bullet, ODE quickstep and many other physics engines se is known as projected Gauss Seidel (PGS), or successive over relaxation (SOR) (PGS versus SOR depends on the value of some parameter w). Bullet's iterative pair-wise constraint solving is an implementation of PGS/SOR.
Check out chapter 6 of Kenny Erleben's PhD thesis, or Erin Catto's / gphysics papers in this topic: http://www.continuousphysics.com/Bullet ... c.php?t=63
or just browse this forum a bit more.
Hope this helps,
Erwin
More formal: the constraint problem is a linear complementarity problem (LCP), and the iterative solution Bullet, ODE quickstep and many other physics engines se is known as projected Gauss Seidel (PGS), or successive over relaxation (SOR) (PGS versus SOR depends on the value of some parameter w). Bullet's iterative pair-wise constraint solving is an implementation of PGS/SOR.
Check out chapter 6 of Kenny Erleben's PhD thesis, or Erin Catto's / gphysics papers in this topic: http://www.continuousphysics.com/Bullet ... c.php?t=63
or just browse this forum a bit more.
Hope this helps,
Erwin