I'm working on a cross-platform (Vive/Rift/WMR/Quest) app, and we've run into an issue: the Rift S reports its controllers at a significantly different orientation than anybody else. I made a little test app that dumps all the info I could find about the controllers. Then I asked testers on each platform to hold their hands comfortably in front of them and take a screen shot. Scroll on down... Quest: controllers near zero rotation, as expected. Vive: also pretty close to 0. WMR: close to 0 on x and z, and the apparent difference in Y is just because the user was facing another way (as you can tell from the camera Y rotation): Rift S: 75° of rotation around X axis means that when the user's hands are physically relaxed, the in-game hands are pitched up; and to make the in-game hands level, the user has to turn his hands down quite a lot. The positions and rotations appear twice in each image because I tried both the (deprecated) InputTracking.GetLocalPosition/GetLocalRotation methods, and the newer XRNodeState.TryGetPosition/Rotation approach. But as you can see, these return the same answers. How am I to deal with this? The game is not really usable for Rift S users at the moment. And of course I am only assuming it is the different device that matters, but it could be something else in the system configuration (we don't have enough OS/device combinations to test exhaustively). Do I need some kind of calibration step, where I ask users to hold their hands neutral, and calculate a rotation offset to apply to all subsequent readings? Or is there some way I should be able to get this through XR?