Interpolation interpolate seems to make rigid body physics become unstable?

I am using Unity 6000.32f1
I have a few rigidbody objects.
When the rigid body interpolation is set to None, everything works fine. But it is bound to 50 FPS.
When I set rigidbody Interpolation to Interpolate, the animation is smooth, but the physics become chaotic. Thinks are bouncing too much, and seem to be more unstable and wrong.

Is this a known issue with this version?
How to fix this?

That’s likely because there’s code performing calculations that affect the physics outside the FixedUpdate loop. For example, reading Transform.position in a Rigidbody from Update will give you an interpolated position instead of the actual physics position.

I do not rely on reading the rigid body position in Update.
It simply a lot less stable and more bouncy.
I can prepare videos to show it.

I think the difference is in the way it handles collision.

I typically deal with 2D physics not 3D physics but you should know that Interpolation is nothing to do with the physics system itself and how it deals with contacts etc. It’s simply for smoothing-out visuals and it only affects the Transform component (nothing else) where it (per-frame) sets the Transform from the previous Rigidbody pose to the current Rigidbody pose. It has no bearing on what the physics system itself is doing unless you’re referring to the Transform.position (which isn’t the same as the Rigidbody.position) when using interpolation and feeding that back into the physics system.

  • None (Current) - Transform is set to the Rigidbody pose at the end of the simulation step
  • Interpolation (Historic) - Transform is updated per-frame from the previous Rigidbody pose to the current Rigidbody pose
  • Extrapolation (Future) - Transform is updated per-frame from the current Rigidbody pose to a predicted Rigidbody pose calculated as the Rigidbody pose + the Rigidbody velocity

No, physics work the same regardless the Interpolation mode.

If the physics behavior in your project depends on the interpolation mode, then as MelvMay said there’s something in your code that uses Transform.position / Transform.rotation for calculations that are then applied to the physics system somehow.

So it is possible it is the continues collisions.