immersive-web / webxr-hand-input

A feature repo for working on hand input support in WebXR. Feature lead: Manish Goregaokar
https://immersive-web.github.io/webxr-hand-input/
Other
104 stars 17 forks source link

Spec should define the X axis of a joint. In addition Y axis seems incorrect #89

Closed cabanier closed 3 years ago

cabanier commented 3 years ago

The spec is silent on the direction of the X axis, only Y and Z are defined.

This is creating issues with interoperability because OpenXR's coordinate system is different than WebXR's. The WebXR spec states:

The native origin for every XRReferenceSpace describes a coordinate system where +X is considered "Right", +Y is considered "Up", and -Z is considered "Forward".

It seems that this is not the case for joint spaces. The Oculus browser treats joint spaces the same like all the other ones (and I believe Servo did as well since we had interoperability) but it seems that it needs to make an exception for joints which seems counterintuitive. @Manishearth do you remember working around this issue?

cabanier commented 3 years ago

CC @fordacious

Manishearth commented 3 years ago

Defining Y and Z automatically defines X, WebXR is right-handed.

We're following the WebXR definition of the axes, the only fudge factor is what is the "standard" hand position used -- I think in this spec it is "palms down", giving a -Z forward and +Y up.