Generic spring constraint damping

Hi all, I originally asked this question at the Blender Stack Exchange but got no answers, I’m hoping someone here can help.

I’m new to Blender so I may be overlooking something really obvious, but it seems to me the damping in the generic spring constraint does not work as intended.

I built a simple car (body, four wheels) with the generic spring constraint acting as suspension and entered realistic values for mass and spring stiffness in the various components. For the spring damping, I entered a first guess of 0.8, expecting the car to settle fairly fast after a drop.

Instead, it keeps bouncing and bouncing, and no reasonable value will stop it aside from a value of 1, which stops the bounce instantly - as expected. I did notice that I can enter values like .999999 and that almost works (although the value then shows as 1 in the number field) but that renders the damping incredibly sensitive to the number of solver iterations (and probably steps per second, although I did not test that) and is a completely unreasonable value for a damping coefficient.

I’ve attached a .blend showing the problem.

As you can see, even with the spring damping set to .999, the oscillation will not stop.

So, my question is, is there a way to get the expected damping behavior out of the generic spring constraint, or should I report this as a bug? I’ve tried this in 2.77a, 2.78RC1, and 2.78RC2, and the behaviour is the same in all.

 Of course, for more realistic simulation of a car suspension damper I'd need to be able to set different damping coefficients depending on the direction and velocity of suspension movement (through drivers and scripted expressions, I presume?) but I'd first at least like to get the simple, basic spring-damper system working.

Any ideas would be really appreciated!


CarPhysicsTest.blend (709 KB)

looks like you need to add translation damping to the car body itself
may be something wrong there but it always worked like that I think…

Thanks for the reply, unfortunately that is not an acceptable solution - it’s the equivalent of dumping a car in a pool of molasses and saying it now has working suspension damping. :slight_smile: It would dampen the oscillations for sure, but also any other movement. What I need is damping of only the relative movement between wheel and body.

I guess I’ll file a bug report and look for an alternative way to implement the damping until this is fixed.