Matter Physics without Friction Still has Velocity Loss

I’m experimenting with the Phaser 3 example Physics/Matterjs/Balls below.

https://labs.phaser.io/edit.html?src=src\physics\matterjs\balls.js

I’m changing the code by setting all friction to 0 and setting bounce to 1(see below).
ball.setFriction(0.000);
ball.setFrictionAir(0.000);
ball.setFrictionStatic(0.000);
ball.setBounce(1);

I would expect that the balls now continue to bounce forever since there is never any loss of velocity, just trading velocity through collisions. However, the balls do lose velocity and after around 10 seconds they all come to rest.

The best I could do was set bounce to 1.1 to continue adding extra energy into the system, but this isn’t ideal. Is there a setting I’m unaware of that I need to change to create a situation where there is no loss of velocity?

Bodies also lose energy while converting linear velocity to angular velocity. Try setting inertia to infinite to prevent that.

You might want to look into that: https://github.com/liabru/matter-js/issues/144

Sorry for the bump, I came across this thread looking for answers.

Setting fixed rotation sets the Body inertia to Infinity, which stops it from being able to rotate when forces are applied to it.

https://newdocs.phaser.io/docs/3.55.2/focus/Phaser.Physics.Matter.Components.Transform-setFixedRotation