Documentation says (at least for impulses, but I expect it to be the same for forces):
Applying an impulse requires a vector giving the magnitude and direction of the impulse and the position vector of the contact point of the impulse. The contact point of the impulse is given in world coordinates.
This seems to be true for CannonJSPlugin, whereas AmmoJSPlugin wants it in body coordinates.
In my case, I apply a force at the box position. With cannon or ammojs, they both go upward. If the force position was only local with ammojs, the cube would spin.
Thx for the quick answer. In your PG of course nothing rotates for the force directly hits CG.
But when you push boxCollider a small step aside (x = 2) the contact point. so that torque is actually created, cannon and ammo behave very differently. Ammo results in an ondulating, swinging turn because the contact point wanders from side to side due to rotation, whereas cannon creates the (expected and correct?) constant increase in angular velocity.