Currently I am working on learning about physics engines, what they can do and the differences between the three plugins with the intention of writing what I discover in the documentation. Starting with the HingeJoint I made a PG to show how it works. Cannon and Oimo worked as expected but a strange phenomenon occurred with Ammo that I cannot see any explanation for.
I constructed a sphere and a box joined with a hinge that allows movement around the z axis, with the box positioned so that only an impulse in the x direction could rotate the box around the sphere. Just click the Apply Impulse button.
With Cannon and Oimo you can see that this works as expected https://www.babylonjs-playground.com/#F15U0G#2 just change which line 27 or 28 is commented.
With Ammo https://www.babylonjs-playground.com/#F15U0G#1 it does not always work, though weirdly sometimes if you hit RUN again (or again and again) it sometimes does work. Just as strangely if you remove the comment on line 50 and apply the same impulse directly it always rotates the box around the sphere and clicking the Apply Impulse button will apply an additional impulse.
NOTE It is worth pointing out that whilst the contact point for an impulse in Cannon and Oimo is given in world space the contact point for Ammo is in the local space of the mesh it is applied to.
Issue is the same across FF, Chrome and Edge browsers.