#463: WebXR Hit Test Module
Discussions
Discussed
Jan 13, 2020 (See Github)
Tess: Are we going to define hit testing in XR before in the rest of the platform?
Tess: I wonder if we should be figuring out how to expose hit testing more generally and then figure out how to apply it in XR
Assigning Tess and David
Comment by @hober Jan 27, 2020 (See Github)
I'm worried that we're on track to spec hit testing for XR before we spec hit testing on the rest of the platform. If this happens, we risk speccing something for XR that doesn't match the (now implicit) hit testing model of the rest of the platform.
I wonder, would anyone working on XR hit testing be willing to simultaneously work on a hit testing spec for the rest of the platform, ideally with a common model shared between the two specs?
Comment by @mounirlamouri Jan 27, 2020 (See Github)
Hit Testing for XR is a very different problem than hit testing for a document. The obvious differences for example is that the XR environment is in 3D where hit tests are fairly known concepts (eg. video games). I don't know what are the concerns with the document hit testing but would they apply to a 3D DOM-less environment? I would be interested to know why you think we can make document hit tests and XR hit tests share the same concepts/models.
XR hit test can also be limited by the underlying platform. For example, with AR hit tests, the underlying ARCore/ARKit frameworks would actually be doing the checks and the UA would only package the response back to the website. Among others, the consequence is that the hit test API in XR has to be asynchronous while a document hit test wouldn't.
Comment by @hober Feb 4, 2020 (See Github)
Hit Testing for XR is a very different problem than hit testing for a document.
Given #470, it's not clear to me that this is the case.
Comment by @hober Feb 7, 2020 (See Github)
In mozilla/standards-positions#259, @larsbergstrom said:
We believe that it is premature to establish a Mozilla standards position or get TAG review of the WebXR Hit Test module. There are a significant number of security, privacy, naming, and functionality issues with the current proposal (https://github.com/immersive-web/hit-test/issues), and it has not been prototyped by any other party yet - and most importantly, never on a headworn AR device.
Discussed
Feb 24, 2020 (See Github)
Tess: I linked to the mozilla standards position issue which raised some good concerns... security & privacy in particualry. Has not been prototyped... Basic worry I had a month ago - I am concerned we define hit testing for webxr before we define it for the rest of the platform. Adding additional concepts on top of the current model. I don't want to say " you can't work on this until we do xyz". but what are the common concepts? If there were to be general work, how could this work inform it so it could be architecturally aligned in the future?
Dan: security & privacy issues need to be addressed.
Comment by @a2sheppy May 28, 2020 (See Github)
One important issue here is that a better job needs to be done in WebXR specs and docs to clarify the difference between "hit testing" in the context of using ray casting with sensors to detect intersection with real-world objects vs. using virtual ray casting to determine intersection of a ray with virtual objects in the scene. These are very different concepts, and it actually took me quite a while to realize that the phrase "hit testing" in the WebXR specs was referring to real world, not virtual world, hit testing.
I am curious what the long term usage of virtual vs real-world hit-testing will be in terms of which will be most common; I suspect that once XR devices are commonplace and VR is the primary use case rather than AR, we will find that virtual hit testing is by far the more common scenario. Regardless, it's worth considering this issue when naming and describing this capability, and I would at least suggest renaming the spec to something more like "WebXR Physical Target Hit Testing" or something related to the real world.
Comment by @torgo Sep 23, 2020 (See Github)
Hi @mounirlamouri - any current status on this? Any reaction to the comments left since Jan here? Has anything substantively changed that we should take a look at?
Comment by @mounirlamouri Sep 23, 2020 (See Github)
Thanks for following up @torgo. I don't think there were any comment that required following up.
-
The API is for hit testing in mixed reality environment, not in documents.
-
Mozilla's feedback was somewhat strange given that they were implementing the API at the time and shipped it. I also don't see how it's relevant to the review given that the feedback had no technical basis.
-
The API is about hit testing and there were discussions about allowing that in VR but seemed not very useful given that the author is in full control of the VR experience and can do hit testing using regular Maths. If an implementer felt strongly about it, there is nothing that would forbid it.
Discussed
Oct 19, 2020 (See Github)
We discussed Mounir's feedback..
Alice: yes, agreed that this type of hit testing is different from document hit testing.
Dan: yes -
Dan: and agreed on Mozilla's feedback as well as the feedback on use of this API in the VR enviroment.
Comment by @torgo Oct 20, 2020 (See Github)
Thanks @mounirlamouri. Thanks for the feedback on our feedback. We discussed this today in a TAG breakout today. We're gonna suggest to close this in our plenary this week.
Comment by @hober Jan 28, 2021 (See Github)
Hi @mounirlamouri,
@dbaron and I took a look at this during our vF2F today, and were wondering why this uses Float32Array to represent 4x4 matrices when DOMMatrix already exists on the platform for 4x4 matrices.
Comment by @dbaron Jan 28, 2021 (See Github)
I'm also curious if you have thoughts on @a2sheppy's comment.
Comment by @mounirlamouri Jan 28, 2021 (See Github)
@dbaron my comment above (point 3) answers @a2sheppy comment. To summarise, the spec is mostly intended for AR (real world) but doesn't forbid it to be used for VR (virtual world). Some members of the WG felt it could be useful. It is up to the implemeter.
@hober Float32Array is used by the base Web XR spec (https://www.w3.org/TR/webxr/). This spec stays consistent with it.
Discussed
Feb 8, 2021 (See Github)
Tess: mounir replied that the underlying webxr platform also does what I asked about (matrices). Why not use DOM Matrix? Might have to send that back to WebXR group.
Rossen: this might be inertia about what they're used to. It's a good point though.
Tess: I will file an issue on the main WebXR issues tracker about it.
Rossen: would this hit testing allow pixel readbacks
Tess: I think it's real-world only; they said virtual was "just a matter of maths (sic)"
Rossen: combining virtual and realworld testing.
Rossen: pixel reduxing would have a dependency on the graphics subsystem which would be pretty bad... as soon as you go to readback the values you have to sync the pipeline. I will go through the proposal.
Dan: Let's try to revisit in the plenary. I will bump one mor week.
Rossen: needs use cases and test cases.
Comment by @atanassov Feb 8, 2021 (See Github)
Looking through the current version of the spec (a first read for me), I find it lacking use cases and example usage of the proposed API. Would be great to either take some of the explainer tests or add new ones to improve the quality of the spec.
Discussed
Feb 15, 2021 (See Github)
Tess: when we last left it - after we marked it as proposed closed - we noted the non-use of dom matrix. This was due to consistency with WebXR. So I filed that issue - I don't think that should hold this up however.
[discussion on closing]
Dan: +1
Tess: yes I think we can
Tess: lack of use cases & examples... was Rossen's comment.
Rossen: yes.
Tess: I think it would improve the document.
Rossen: we can leave the feedback. I will write the closing comment.
Yves: I will TAG track the issue in WebXR.
Rossen: noting previous comment from David... Mounir answered this doesn't answer the question. Eric suggests a rename to clarify it's real world only. But Mounir replies it's up to the implementer.... So let's push it for another week and I will prompt to answer the question and clairify Eric's point.
[so bumped]
Discussed
Mar 8, 2021 (See Github)
Rossen: They have not taken our feedback into consideration... a bit disappointed.
Dan: I'll ping the group chair about it... ?
Rossen: they have no examples of how it should be used... the current incarnation of their spec has no intention to be read by developers.
Dan: proposes closing comment:
We're going to close this off. The TAG is satisfied with the design and that feedback has been taken to account, however there is still a lack of uses cases and examples as @atanassov has pointed out in the last comment. We would therefore strongly encourage that these be added to the spec in subsequent revisions. We
[we acutally decide not to leave this comment yet]
Dan: will reach out to group chair
[bumped]
Discussed
Mar 15, 2021 (See Github)
Closed with feedback for more examples in spec
Discussed
Mar 15, 2021 (See Github)
Dan: kind of stalled still - we have left feedback and the group chairs have been contacted but no resposne yet
Comment by @atanassov Mar 16, 2021 (See Github)
We did one final review during our Breakouts A and B today (Mar 15, 21) and agree with the overall direction of the proposal. Again, as pointed out in my previous comment, the spec can benefit from examples so that the dev community can have a better idea of the intended use. Thank you for working with us, good luck.
OpenedJan 14, 2020
Hello TAG!
I'm requesting a TAG review of WebXR Hit Test Module.
Exposes hit-testing (raycasting) capability for WebXR. This API would allow a developer to cast a ray into the real world and return a list of intersection points for that ray against whatever world understanding the underlying system gathers.
Further details:
You should also know that...
We'd prefer the TAG provide feedback as (please delete all but the desired option):
🐛 open issues in our GitHub repo for each point of feedback