How do I enable Physics Interpolation using Jolt Physics?

Godot Version



In Unity3D there is built-in functionality to enable interpolation on rigid bodies which makes their movement smooth even on low physics time steps, with no real impact on performance. This allows you to optimize the game and use a lower physics time step while still getting a butter-smooth experience on high refresh rate monitors.

I’ve also read that the built-in physics engine doesn’t perform well and that it is advised to switch to the Jolt Physics Engine. The built-in physics engine doesn’t even seem to have support for physics interpolation.

But even when using Jolt Physics, interpolation doesn’t seem to exist. Surely this is something most games would want since without it, even on 60 ticks per second, it will look jittery/stuttery on most monitors above 60hz. So what I’m asking is, how do you fellow Godot devs achieve physics interpolation, either on the built-in Physics Engine or while using the Jolt Physics engine? Thank you for your time!


Currently there’s no physics interpolation in 4.2, but it is implemented for 2D in 4.3. So hopefully it’ll be implemented for 3D relatively soon after.

(Here’s the physics interpolation proposal)

In the meantime, you can make a small script that does the interpolation using the value you get from Engine.get_physics_interpolation_fraction(). It won’t be as efficient as an proper in-engine implementation, but it shouldn’t be too bad for performance if you don’t have too many things using it.

There’s also lawnjelly’s smoothing addon which implements it for you, I haven’t personally used it but people seem to be happy with it.