[ODE] Re: Virtual creatures (karl sims etc...)

Martin C. Martin martin at metahuman.org
Tue May 14 20:31:01 2002


> > > For example, a freely rotating body in space, without
> > > any damping (e.g. air resistance), will continuously gain angular momentum.

If strictly conserving energy over a long period of time is your goal,
then ODE isn't for you.  However, when evolving virtual creatures, this
usually isn't a problem.  That's because in every time step energy is
generally added (through muscles) and/or subtracted (through muscles
and/or friction).  The fact that a little extra energy may be added or
subtracted each time step won't change your results radically.

If you intend to add little or no energy of your own, and have little or
no drag, and need energy to stay the same (e.g. simulating planetary
motions), then you need a physics engine that emphasizes accuracy over
stability.

I'm doing some Karl Sims type work at MIT and using ODE for it, and the
biggest problem is that constraints aren't added until penetration has
already happened, i.e. until it's "too late."  Then ODE adds a force to
separate the two bodies.  With a little bit of cleverness, the virtual
creatures can extract quite a bit of energy from this in a single time
step.  For example, check out the video CheatingJumper2_320.mpg here:

http://www.metahuman.org/martin/eden

So, I'm toying around with adding the constraint a timestep early, i.e.
on any timestep where two things would otherwise start to
interpenetrate.

- Martin