Restitution has weird behaviour around 0.2

I want to compare the restitution of Unity’s and Isaac’s physics engines. Both Unity and Isaac use different version PhysX however I dont think this is the reason for the weird behaviour.
I am using GPU PhysX for Isaac.

I made a test consisting of a sphere rigidbody falling from 5 units onto a plane.
The combined restitution is set to average.
The graph shows that as the restitution get closer to 0.2, the ball bounces higher (on isaac) and then as the restitution moves above 0.2 the ball bounces lower?

This graph shows 11 tests of increasing restitutions in Isaac and Unity. Unity seems to have the correct behaviour (with very small bounces and small restitutions).

I also tested just with Isaac the motions of the ball with restitutions going all the way up to 1, with the motions of the balls overlayed on top of each other.
On this test the combined restitution of the ball is set to max.
The bottom graph shows the peaks of the first bounce. You would expect this value to gradually increase as the restitution increases but at the beginning there is this weird anomaly.

This behaviour doesn’t happen when running on CPU.
Is this a bug or can it be explained by a PhysX parameter I’m missing?

1 Like

Hi @peter226 - Thank you for the summary. I will forward this to right team and they will get back to you.

Hi @peter226

it sounds like you may be affected by a bug that caused updates to the restitution coefficient not to take effect in the GPU simulation.
This problem has been fixed, see e.g., Contact Restitution with PhysX in IsaacGym - #11 by gstate .

Can you please verify that you’re using a version greater or equal Isaac Sim - 2022.2.1 ? If yes, and you still have the problem, could you please share how you’re updating the restitution coefficient?