Welcome to the forum!
I have noticed you integrated a physics engine (cannon in that case) to use as collision detector. A physics engine has a lot of advantages, but is sometimes not the right choice for a specific usecase.
If you don’t need the physics calculations (like forces, impulses, gravity, etc’), I would use babylon’s internal collision system instead of a complex physics engine. You can use “mesh.moveWithCollisions” to move and calculate collisions against any collider that you define, and prevent the mesh from going through it completely (the same way our camera collision system works, It is decribed here: