Unity XR hands "shaking" when XR rig moved away from initial location

I have a project with Unity XR and have just implemented movement of the XR rig, however I notice a very unpleasant effect: XR hands start “shaking” when the XR rig is moved away from the initial location.

Here is how it looks like: https://youtube.com/shorts/TX6tyOfsXtQ

I made two completely independent of each other implementations of the movement: one with the locomotion system and one by just moving the rig’s transform’s position. Both have this shaking though.

Any idea what might have causing it and how to prevent it? Thanks!

Edit: not sure if this is of significance, but the movement is tens of thousands of units.

This problem is 100% due to the movement being tens of thousands of units. Google: Unity floating origin.

The problem is positions are stored as floating point numbers, and when you get extremely far from the world space origin (0,0,0) the accuracy lowers.

In some games with large open worlds, such as outer wilds, they lock the player to 0,0,0 and move everything else around the player.

1 Like

Thanks for the reply, this is very helpful! Will give it a try… a bit of rework, but fully worth it if it solves the issue.

Edit: It works like a charm!! I was worried about the performance - I have a lot of objects with TrailRenderers and moving all those points each frame seems like a heavy operation, but Unity surprised me quite pleasantly.