Intent to Implement and Ship: WebXR AR Module

233 views
Skip to first unread message

Piotr Bialecki

unread,
Jan 15, 2020, 4:35:42 PM1/15/20
to blink-dev
mlam...@chromium.org,bia...@chromium.org,kla...@chromium.org https://github.com/immersive-web/webxr-ar-module/blob/master/ar-module-explainer.md Specification: https://immersive-web.github.io/webxr-ar-module/ n/a https://github.com/w3ctag/design-reviews/issues/462 WebXR AR Module brings Augmented Reality support to WebXR Device API. This module is a product of the Immersive Web Working Group, and is a prerequisite for AR features currently being prototyped in the Community Group separately: WebXR Hit Test: https://www.chromestatus.com/feature/4755348300759040 WebXR DOM Overlay: https://www.chromestatus.com/feature/6048666307526656 WebXR Plane Detection API: https://www.chromestatus.com/feature/5732397976911872 WebXR Anchors: https://www.chromestatus.com/feature/5129925015109632
This WebXR module is adding a very small API surface that allows for AR experiences with WebXR. It is a non-controversial specification that has wide support in the Working Group and Community Group. Firefox: Public support (https://github.com/immersive-web/webxr-ar-module/issues/46#issuecomment-574089775) Additional link: https://blog.mozvr.com/bringing-firefox-reality-to-hololens-2/ Edge: Public support (https://github.com/immersive-web/webxr-ar-module/issues/46#issuecomment-574457632) Safari: No public signals Web developers: Positive Libraries such as Model Viewer (https://modelviewer.dev/examples/augmented-reality.html) and A-Frame (https://aframe.io/blog/webxr-ar-module/) have been implementing AR experiences behind experimental flags as it is a commonly requested feature. This feature is an extension to WebXR Device API. WebXR Device API is commonly used along with WebGL. The feature is usable as-is, although it will be more accessible to developers if used through libraries like three.js, <model-viewer>, A-Frame, etc. Some of these APIs already have experimental usage of the API.
No This module brings in features needed by the apps to provide AR experiences, so this will only be supported on platforms where Chrome supports AR. Currently, this is only Android. The WebView support is planned. The specification itself will be implemented in Blink for all platforms, but the spec text leaves room for the UAs to signal that a particular API depends on the device support. Yes Results: https://wpt.fyi/results/webxr/ar-module?label=experimental&label=master&aligned Tests: https://github.com/web-platform-tests/wpt/tree/master/webxr/ar-module https://crbug.com/949296 https://storage.googleapis.com/chromium-webxr-test/latest.html?target=proposals/phone-ar.html https://immersive-web.github.io/webxr-samples/proposals/ https://modelviewer.dev/examples/augmented-reality.html https://chromestatus.com/feature/5450241148977152
This intent message was generated by Chrome Platform Status.

est...@google.com

unread,
Jan 17, 2020, 5:42:46 PM1/17/20
to blink-dev
Could I request that the security/privacy section of the spec be filled out before this intent is approved, please? https://immersive-web.github.io/webxr-ar-module/#security
Thanks,
Emily

Mounir Lamouri

unread,
Jan 21, 2020, 6:13:51 PM1/21/20
to Emily Stark, blink-dev
We unfortunately don't directly maintain the specification. However, I just sent a PR to add the section: https://github.com/immersive-web/webxr-ar-module/pull/49 I also answered the privacy & security questionnaire as part of the TAG review: https://github.com/immersive-web/webxr-ar-module/blob/master/security-privacy-questionnaire.md 

It's worth noting that there isn't much to say in the privacy and security section given that this is only a very small addition to the main WebXR specification. It's also very likely why this wasn't written in the first place as this was part of the WebXR specification until not long ago.

-- Mounir

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/2d1b49c2-c3b4-480b-bab4-93e859d4a2ef%40chromium.org.

Yoav Weiss

unread,
Jan 27, 2020, 11:21:11 AM1/27/20
to Piotr Bialecki, blink-dev
I have to say that the explainer is not very clear:
What is the user problem that this is trying to solve? What is the high level solution to that?
Same as the other thread - filing for  a TAG review earlier would have given us more feedback.

WebXR AR Module brings Augmented Reality support to WebXR Device API. This module is a product of the Immersive Web Working Group, and is a prerequisite for AR features currently being prototyped in the Community Group separately: WebXR Hit Test: https://www.chromestatus.com/feature/4755348300759040 WebXR DOM Overlay: https://www.chromestatus.com/feature/6048666307526656 WebXR Plane Detection API: https://www.chromestatus.com/feature/5732397976911872 WebXR Anchors: https://www.chromestatus.com/feature/5129925015109632
This WebXR module is adding a very small API surface that allows for AR experiences with WebXR. It is a non-controversial specification that has wide support in the Working Group and Community Group. Firefox: Public support (https://github.com/immersive-web/webxr-ar-module/issues/46#issuecomment-574089775)

Typically only statements on Mozilla's standard positions repo count as public support, but that sounds like a particularly enthusiastic positive signal (with an implementation to go along with it!)
Same Q as other thread: have we asked? Are they involved in the WG?
 
Web developers: Positive Libraries such as Model Viewer (https://modelviewer.dev/examples/augmented-reality.html) and A-Frame (https://aframe.io/blog/webxr-ar-module/) have been implementing AR experiences behind experimental flags as it is a commonly requested feature. This feature is an extension to WebXR Device API. WebXR Device API is commonly used along with WebGL. The feature is usable as-is, although it will be more accessible to developers if used through libraries like three.js, <model-viewer>, A-Frame, etc. Some of these APIs already have experimental usage of the API.
No This module brings in features needed by the apps to provide AR experiences, so this will only be supported on platforms where Chrome supports AR. Currently, this is only Android. The WebView support is planned. The specification itself will be implemented in Blink for all platforms, but the spec text leaves room for the UAs to signal that a particular API depends on the device support. Yes Results: https://wpt.fyi/results/webxr/ar-module?label=experimental&label=master&aligned Tests: https://github.com/web-platform-tests/wpt/tree/master/webxr/ar-module https://crbug.com/949296 https://storage.googleapis.com/chromium-webxr-test/latest.html?target=proposals/phone-ar.html https://immersive-web.github.io/webxr-samples/proposals/ https://modelviewer.dev/examples/augmented-reality.html https://chromestatus.com/feature/5450241148977152
This intent message was generated by Chrome Platform Status.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Mounir Lamouri

unread,
Jan 27, 2020, 1:55:04 PM1/27/20
to Yoav Weiss, Piotr Bialecki, blink-dev
On Mon, 27 Jan 2020 at 08:21, Yoav Weiss <yo...@yoav.ws> wrote:
 On Wed, Jan 15, 2020 at 10:35 PM Piotr Bialecki <bia...@chromium.org> wrote:

I have to say that the explainer is not very clear:
What is the user problem that this is trying to solve? What is the high level solution to that?

The problem this specific module tries to solve is, to be fair, not super clear. The reason is that the module was meant to be the base for the AR experience on the Web but without at least another API (plane detection or hit tests), it wouldn't be practical to offer an AR experience. The problem this module is solving is to define how the real world is composited behind an XR session. This means that you can see the real world through your device (headset or phone) and draw objects in WebGL and these objects would be positioned in that world. However, you cannot detect the geometry of the real world so you wouldn't be able to place the objects on the floor, a wall, etc. This is why we have been working on the Hit Test module at the same time as both together offer a complete solution. There are some use cases to launch this module without either plane detection or hit tests but they are fairly minor (eg. inserting a whale in a room to see how big it is, having it seat on the floor wouldn't matter).

The solution to the problem however is very simple. We composite the camera frames (via ARCore in our case) behind the scene if an "immersive-ar" session is requested. The only exposed information to the web developers is the blend mode.
 

Same as the other thread - filing for  a TAG review earlier would have given us more feedback.

As usual, any critical feedback we hear from the TAG or otherwise may lead us to change the API after launching. We do not expect to get any strong feedback, especially given that the only exposed API from this specification is an enum.
 
WebXR AR Module brings Augmented Reality support to WebXR Device API. This module is a product of the Immersive Web Working Group, and is a prerequisite for AR features currently being prototyped in the Community Group separately: WebXR Hit Test: https://www.chromestatus.com/feature/4755348300759040 WebXR DOM Overlay: https://www.chromestatus.com/feature/6048666307526656 WebXR Plane Detection API: https://www.chromestatus.com/feature/5732397976911872 WebXR Anchors: https://www.chromestatus.com/feature/5129925015109632
This WebXR module is adding a very small API surface that allows for AR experiences with WebXR. It is a non-controversial specification that has wide support in the Working Group and Community Group. Firefox: Public support (https://github.com/immersive-web/webxr-ar-module/issues/46#issuecomment-574089775)

Typically only statements on Mozilla's standard positions repo count as public support, but that sounds like a particularly enthusiastic positive signal (with an implementation to go along with it!)

Thanks for the feedback. Them editing the spec and implementing it sounded like a strong enough signal to us. We put a note on the other Intent to Ship though.
 

Same Q as other thread: have we asked? Are they involved in the WG?

Yes, and yes. Apple is a member of the group. Dean Jackson usually joins our face to face and meetings. We asked Dean and other implementers/participants for their feedback on https://github.com/immersive-web/webxr-ar-module/issues/46. We did not hear back from Apple.
 
Web developers: Positive Libraries such as Model Viewer (https://modelviewer.dev/examples/augmented-reality.html) and A-Frame (https://aframe.io/blog/webxr-ar-module/) have been implementing AR experiences behind experimental flags as it is a commonly requested feature. This feature is an extension to WebXR Device API. WebXR Device API is commonly used along with WebGL. The feature is usable as-is, although it will be more accessible to developers if used through libraries like three.js, <model-viewer>, A-Frame, etc. Some of these APIs already have experimental usage of the API.
No This module brings in features needed by the apps to provide AR experiences, so this will only be supported on platforms where Chrome supports AR. Currently, this is only Android. The WebView support is planned. The specification itself will be implemented in Blink for all platforms, but the spec text leaves room for the UAs to signal that a particular API depends on the device support. Yes Results: https://wpt.fyi/results/webxr/ar-module?label=experimental&label=master&aligned Tests: https://github.com/web-platform-tests/wpt/tree/master/webxr/ar-module https://crbug.com/949296 https://storage.googleapis.com/chromium-webxr-test/latest.html?target=proposals/phone-ar.html https://immersive-web.github.io/webxr-samples/proposals/ https://modelviewer.dev/examples/augmented-reality.html https://chromestatus.com/feature/5450241148977152
This intent message was generated by Chrome Platform Status.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/2956266f-373b-4812-820d-993e0c059ffc%40chromium.org.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Yoav Weiss

unread,
Jan 29, 2020, 4:30:48 PM1/29/20
to Mounir Lamouri, Piotr Bialecki, blink-dev
LGTM1 given the fact that Mozilla are implementing, assuming we're willing to be open to TAG feedback and change the API shape if necessary.

TAMURA, Kent

unread,
Jan 29, 2020, 7:51:12 PM1/29/20
to Yoav Weiss, Mounir Lamouri, Piotr Bialecki, blink-dev
LGTM2




--
TAMURA Kent
Software Engineer, Google


Chris Harrelson

unread,
Jan 29, 2020, 8:00:16 PM1/29/20
to TAMURA, Kent, Yoav Weiss, Mounir Lamouri, Piotr Bialecki, blink-dev

Brandon Jones

unread,
Jul 14, 2020, 1:49:55 PM7/14/20
to Chris Harrelson, TAMURA, Kent, Yoav Weiss, Mounir Lamouri, Piotr Bialecki, blink-dev
A brief follow up: Since implementing the WebXR AR Module in Blink a new attribute, isFirstPersonObserverView, has been added by the working group. We'll be adding it to Blink to ensure better cross-platform compatibility, though on all devices Chrome currently supports it's expected to return false.

Reply all
Reply to author
Forward
0 new messages