The avatar physics object didn’t prove so simple, but with some tinkering I figured it out. I had to copy the Three.js objects position and rotation and translate that across to the physics object, so it was basically just the opposite of the normal way to update the position. This was because my controller controls the Three.js object not the Cannon.js object. At this point it is working fine so I am going to continue doing it this way, I have also spent a long time configuring my controller to work so I don’t want to waste all of that time working on a new controller that may take an age to make work. If I have time after the other important parts of my project are coded I may return to this issue.