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?


2 Answers 2


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.


For the record, here is the answer from the author himself in one of his articles:

The difficulty with traditional spring-damper models is that, if the contact-space inertia is too large the contact will be springy and result in large penetration and subsequent oscillation, while if the inertia is too small the dynamics will be stiff and very difficult to integrate numerically. Since the contact-space inertia is configuration-dependent while the spring-damper coefficients are fixed, this problem may seem unavoidable. However, if we have access to the diagonal of the ? matrix we can tune the spring-dampers online, and for example make sure that we always have critically-damped springs at all contacts.

From MuJoCo: A physics engine for model-based control

  • $\begingroup$ So basically the answer is because it's too hard to analyze $\endgroup$
    – guero64
    Mar 27, 2022 at 23:49
  • $\begingroup$ Not really. The take-home message is "the dynamics will be stiff and very difficult to integrate numerically". It requires a very small adaptive timestep to be numerically stable, which is not competitive against unilateral contact model. I have developed a simulator Jiminy for which both models are implemented if you want to check this by yourself. $\endgroup$
    – duburcqa
    Mar 28, 2022 at 6:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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