[ODE] Speed is not velocity

Petr Sovis petr_sovis at hotmail.com
Fri Jun 27 19:28:02 2003


Hi,
I've written a simple physic simulator (similar to ODE), but I have serious 
speed problem. I need to use this system to simulate rag-dolls (commercial 
tactical game). One doll have 11 capped cylinders & 10 joints - hinges + 
universal joints with limits + there are contacts with triangle mesh – up to 
5 acting to one capped cylinder.  I use lagrange multipliers (Baraff) && 
anitescu discretization && LCP computing scheme - with direct joint 
stabilization(ODE). And now my problem. One doll runs at my computer about 
50FPS, but two (each directly lying on other) takes a much more time - 
simulation runs only 8 FPS (the J matrix rapidly grows) which is horribly 
slow a completely unusable. Can someone advise me some techniques to speed 
up lagrange mult. LCP algorithm (even how to write faster LCP solver - but I 
dont know how to solve 100x100 matrix LCP problem faster - can be ill 
conditioned with multiple contacts and joints ? )
I have three shots (maybe blind) which can help

1) sleeping objects – no really great speed up (I don’t want to simulate 
heap of boxes)
2) not to propagate contacts from one doll to other – one doll acts like 
firm wall to other - remaining 50FPS – but loss of accuracy
3) simulate joints with penalty methods – forces instead of 3-6 lines in J 
matrix – final effort

I saw many engine examples (tokamak, Terdiman’s Physic test – pile of boxes) 
and it seems to me that all are much much much more faster then my first 
try, so please, if you have some ideas, let me know.
    Thank in advance
         Petr Sovis

_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE* 
http://join.msn.com/?page=features/junkmail