Looking for constraint based physics engine overview

Please don't post Bullet support questions here, use the above forums instead.
kitfox
Posts: 1
Joined: Wed Sep 27, 2006 12:01 pm

Looking for constraint based physics engine overview

Post by kitfox »

I'm trying to write a small physics engine in Java, partly to write a small game and partly to teach myself how these things work. I would like to know if there is some website or book out there that gives a good overview of building a constraint based physics engine, including solving the system of constraints and implementing an LCP algorithm.

I've downloaded the ODE source code and am readng thorugh it. While I think I've got the general idea, I'm still not exactly sure how a Jacobian matrix solves the constraint system, or what exactly the LCP is doing under the hood.

I've previously bought "Physics for Game Developers" from O'Reilly, and was very disappointed with its lack of implementation details. Are there any good books that give a good overview of what the engine is doing?
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Post by Erwin Coumans »

Just get Kenny Erlebens thesis from http://www.diku.dk/forskning/image/publ ... leben.html or order his book: Physics Based Animation.It's very good. Next to that, you can read Erin Catto's GDC publications at http://www.gphysics.com/

On Collision Detection, I can recommend Gino van den Bergen's recent book published by Elsevier "Collision Detection in interactive 3D environments", or his PhD Thesis "Collision detection in interactive 3D computer animation", which is for download at Eindhoven University, in the Netherlands: http://www.win.tue.nl/lotgevallen/promoties.htm or local cached copy here. Also Christer Ericons book is good, see http://www.realtimecollisiondetection.net . However, some good information on contact manifold generation, penetration depth and time of impact is important. Browse these forums for more info on these topics, or see the Bullet source code.

Also check out the mainloop in btDiscreteDynamicsWorld in the Bullet 2.1 Physics Library sources. That will hopefully be more clear then the ODE sources. Bullet's constraint solver approach is sequential impulses, which is equivalent to ODE's iterative quickstep solver (successive overrelaxation/Gauss Seidel).

Thanks,
Erwin
Last edited by Erwin Coumans on Thu Sep 28, 2006 2:10 pm, edited 1 time in total.
gee
Posts: 14
Joined: Mon Aug 14, 2006 8:36 am
Location: Paris, France

Post by gee »

I recommend also looking at Kenny's lessons on his website, they are very nice and give a good understanding of the problem he explains in his thesis.