[ODE] Speed of ODE's constraint method

Nate W coding at natew.com
Fri Oct 25 17:10:02 2002


On Fri, 25 Oct 2002, Jason Gott wrote:

> I need to implement a physics simulation that can
> handle rag-doll type constraints (hinge, ball, but
> probably none powered) with joint limits, and contact
> with friction.  I need a fast method.  Is the LCP /
> Lagrange multiplier method used in ODE fast enough for
> interactive frame rates (> 30 fps) for a minimal
> number of constraints/contacts?

I just did some experiments with a rag doll consisting of 10 bodies, and 9
joints - all bodies are boxes, and I use ball joints for the shoulders,
hips, and neck, and hinges for the knees and elbows.  I have a 1.7ghz K7
and a GeForce 3.

It's like Porrasturvat, but without the stairs, just a simple ground
plane.  With one doll, I get ~38 frames per second.  With two dolls, 25-28
fps.  With three, 19-20 fps.  With four dolls (team dismount!), about 15
fps.

Changing the bodies to flat-ended cylinders brought the four-doll
simulation down to 11 fps.  Changing them to capped cylinders, 6-9 fps.  

Bear in mind that there's some overhead in my tests due to the fact that
they're conducted in a general purpose ODE playground rather than in an
optimized game.  I have no idea how much overhead there is, though.  I
don't think it's very significant, but if anyone can do a similar test I'd
be really interested in the results.

-- 

Nate Waddoups
Redmond WA USA
http://www.natew.com