Small Oimo.js Impostor Transformation Bug

The position and rotation of a mesh with static mass can be changed after attaching the physicsImpostor in Cannon.js, but not Oimo.js (not sure about ammo.js).

Using the physics engine doc demo, the mesh moves with Cannon.js but not when using Oimo.js:
https://www.babylonjs-playground.com/#2ADVLV#80

After some research, perhaps the following solution can be somehow implemented for oimo using
.physicsBody.setQuaternion();
.physicsBody.setPosition();
.physicsBody.updatePosition(); (updates both position and rotation)

https://www.babylonjs-playground.com/#2ADVLV#79

pinging @RaananW

Seems more like an issue with movement of fixed objects (mass: 0):

https://www.babylonjs-playground.com/#2ADVLV#82

Will look into that.

So, did a bit of investigation - oimo does not support moving bodies that have mass:0 . this is due to the way they deal with static vs. dynamic bodies. You can see the code here (oimo) - Oimo.js/RigidBody.js at 9e8c8842eb8f412f87f1df18c5e0746566bccb2a · lo-th/Oimo.js · GitHub

As this can cause downgraded performance (since it is expected that static bodies will not move at all) I won’t integrate that in the framework. But the proper solution for you would be to run updatePosition on each frame:

https://www.babylonjs-playground.com/#2ADVLV#83