[ODE] Fixed stepping

Jon Watte (ODE) hplus-ode at mindcontrol.org
Fri Aug 18 10:58:25 MST 2006

Geoff Carlton wrote:

> want.  Its hard to imagine variable stepping ever being as good as fixed 
> stepping, but who knows.

Let's solve that problem if and when we have it. Right now (and for the 
last ten years) we have the problem that a lot of people get jittery 
simulations because of variable time steps, which reflects poorly on the 
quality of ODE.

> Another possibility is the whether different logic may want to be 
> applied by the application - for example, having the time delta within a 
> range, e.g. 0.08 to 0.12.  The benefit could be that it avoids 

That's still going to cause jitter, because ODE is a penetration based 

> A third possibility is whether the application may wish to re-step the 
> collisions as well as the solver for accuracy.  This implies fixed step 
> logic code outside the solver function.

Note that collision is separate from world stepping. If, after calling 
collision, the application wants to go back and do something about it, 
it can, before it calls world stepping. However, as ODE only detects 
collisions after they have happend (penetration), you'd have to have a 
pretty custom set-up for this to affect your world, no matter what; i e 
either detect all collisions as swept bodies and pre-create contact 
joints (in which case the step size doesn't need to change), or be able 
to "rewind" an already simulated step.

> Lastly, regarding the API taking the number of steps as an integer 
> argument, that puts half the burden back on the application code - in 
> particular the logic of accumulating the unused delta from the last 
> frame and incorporating it into the new time delta.

That's intended. Different applications may use different timers.

If ODE did the time accumulation, then you'd just have to second-guess 
ODE on the outside anyway, because of cases where a time delta is just 
too large (and you want to reduce the number of steps), or when 
suspending the simulation to a pause screen or whatever.


			/ h+

More information about the ODE mailing list