Incorrect restitution behaviour

I set up a simple bouncing ball scene in the latest Unreal Engine version (4.7.3), with the ball and ground both having a restitution of 1. The expected behaviour would of course be for the ball to keep bouncing to the same height each time, however, this is not the case as the ball simply continues to reach a greater height on each bounce. Curiously, a similar demo I set up in the Unity 5 exhibited similar behaviour, which might mean that it is a bug in PhysX. As the attached GIF also shows, the ball eventually spins out of control, although this is something which did not occur in Unity. Are there any workarounds/fixes for these issues?
Imgur

Hi,

Thank you for reporting this. I’ve tested this on 4.7.3 with PhysX 3.3.1 and our latest internal build which was recently upgraded to PhysX 3.3.3 and the issue is persistent across both. I’ve submitted a ticket for an engineer to take a look at this. For your reference the ticket # is UE-12469.

When a solution has been found I will update this post with any relevant information.

Thank you!

Tim

I’m afraid this is expected behavior. A game physics engine like PhysX is designer to give plausible and stable results, but not necessarily accurate ones. When the ball penetrates the ground, a force is calculated to both change the velocity, and resolve any penetration. This can result in a small gain in energy. If you want perfectly elastic, ballistic objects, you may need to build something custom, a bit lit our projectile movement, which never allows penetration.