That’s not due to precision / scale of the force.
Are you dragging Three.Mesh or Cannon.Body (you should be dragging Cannon.Body, the only source of truth in terms of position / rotation for the bodies should be Cannon.World - you cannot modify bodies in Three directly, otherwise Cannon simulation will not be in-sync.)
it’s react + three, but the principle is what matters:
the trick is to use two rigidbodies: an empty and one around the movable model. a fixed constraint binds the two. now the empty is driven by the mouse and that’s enough. if you want to move stuff around without much wobbling and spinning you can optionally disable rotations. this will work the same way in cannon.
I don’t think it’s fixable in Cannon though, CCD (continuous collision detection) to my knowledge was never added. Objects will move through walls given enough force. There used to be a draft implementation CCD · Issue #366 · schteppe/cannon.js · GitHub but it was never finished.
It wouldn’t matter what you use, this is the important part, it directly applies to your usecase:
the trick is to use two rigidbodies: an empty and one around the movable model. a fixed constraint binds the two. now the empty is driven by the mouse and that’s enough. if you want to move stuff around without much wobbling and spinning you can optionally disable rotations. this will work the same way in cannon.
the demo is just a proof of concept so that you can see that indeed it works, but you have to apply it to your own app of course.
if you wanted to change a thing though i would suggest you do not use cannon but favour rapier, or anything else really. the ccd thing alone will always cause you trouble (as in, you can pull stuff through walls — there is nothing you can do to address this in cannon). well and it’s the slowest possible engine out there.