While researching different physics engines for dynamic simulations in robotics I found the following statement on the MoJoCo documentation website:

Physics engines have traditionally separated in two categories. Robotics and biomechanics engines (MATLAB Robotics Toolbox, SD/FAST, OpenSim) use efficient and accurate recursive algorithms in generalized or joint coordinates. However they either leave out contact dynamics, or rely on the earlier spring-damper approach which has fallen out of favor for good reason. Gaming engines (ODE, Bullet, PhysX, Havoc) use the modern approach where contact forces are found by solving an optimization problem at each time step.

Link: http://www.mujoco.org/book/index.html

What is the "good reason" for spring-damper not commonly being used anymore to model contacts in dynamic simulations?


The author appears to be writting in a self promotional style, where the details listed about other work are simplified or ignored so that their claim, that their approach is better, can be established.

I suspect the author is making the statement 'for good reasons' because they don't really know.

I would ignore their claims and go read their calculations document to see if it was useful to me.

Contact is difficult to model and one needs to choose the approach that works for their assumptions, goals, and computational resources.

For all simulation, you should understand the phenomenon you are trying to predict and choose appropriate math for that prediction. If a spring-damper works, use it. If it does not, don't.

You (and the author) need to specify the context in which the spring damper model is being used before we can talk about why it is a good or bad choice.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.