immersive-web / webxr

Repository for the WebXR Device API Specification.
https://immersive-web.github.io/webxr/
Other
2.98k stars 381 forks source link

A new XRSpace for a comfortable location for interactive content. #1339

Open AdaRoseCannon opened 1 year ago

AdaRoseCannon commented 1 year ago

Right now WebXR experiences take a best guess at where to place objects so that they will be a comfortable height for the user. Which is difficult when designing something which will be useful for someone who could be tall or short, sitting in a chair, sat on the floor, or perhaps even lying down.

Often these restrictions are ignored and the user asked to participate from a particular pose such as please stand or sit.

If a UA was to provide a space which would be a suggested optimal place to put content which needs to be user grab-able that would be helpful to letting scenes automatically adjust to a user standing up or sitting down or handing the controller off to another user who has a different height.

This could also be used for systems which have a limited interactive region or don't match the standard "headset on a standing user" configuration.

Depending on the UA preference it could be configured entirely manually or just with a height slider. Systems like the Meta Oculus browser which know the location of the user's desk could use that as a good sensible metric for a location to place objects automatically.

This probably exposes some additional fingerprinting risk but because it's not directly tied to a user it can be fuzzed or made granular enough to be a threat.

AdaRoseCannon commented 1 year ago

/tpac lets talk about this at TPAC too

AdaRoseCannon commented 1 year ago

This had a pretty positive response at TPAC, I was looking at how it would ideally be specified. Do people think it should be a

getComfortPose method on XRFrame or a comfortSpace object on XRSession?

Manishearth commented 1 year ago

It has to be a space

AdaRoseCannon commented 1 year ago

do you think we should anticipate more convenience spaces in the future and have an object for keeping them in or XRSession.comfortSpace should be adequate?

Manishearth commented 1 year ago

I think it's fine to add them as needed