Intent to Experiment: WebXR Depth API

Skip to first unread message

Piotr Bialecki

Oct 7, 2020, 6:06:33 PM10/7/20
to blink-dev

Contact emails




Design docs


The Depth API allows applications access to depth buffer information that conveys information about the user's environment in Augmented Reality scenarios.

Blink component


TAG review

TAG review status



Interoperability and Compatibility

The feature is in Immersive Web CG to kick off discussions about interoperability and the API design. The design itself took into account ARCore (Android) and ARKit (iOS, marked as Beta) APIs to present an API shape that could be implemented in both of those platforms, and tried to ensure that other platforms that offer higher-level APIs (world reconstruction) could implement it as well.

Gecko: No signal

WebKit: No signal

Web developers: No signals


This feature is an extension of WebXR Device API. The use of this particular feature does not depend on any other web features, although WebXR-enabled applications will most likely use 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.

Goals for experimentation

The main goal of the experiment is to gather feedback on the API shape / ergonomics from the developers - the API offers a way to access depth data on the CPU - depending on the developers' needs, there is a possibility for the API to prioritize GPU access.

Reason this experiment is being extended


Ongoing technical constraints


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?


This will be supported on platforms where Chrome supports AR. Currently, this is only Android. There are no technical restrictions specific to this API preventing it from being implemented on other platforms. 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.

Is this feature fully tested by web-platform-tests?


Tracking bug

Launch bug

Link to entry on the Chrome Platform Status

Links to previous Intent discussions

Intent to prototype:

This intent message was generated by Chrome Platform Status.

Yoav Weiss

Oct 8, 2020, 11:35:15 AM10/8/20
to Piotr Bialecki, blink-dev
What's the experimental timeline? Do you have partners lined up to experiment and provide feedback?

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
To view this discussion on the web visit

Mounir Lamouri

Oct 12, 2020, 3:00:59 PM10/12/20
to Yoav Weiss, Piotr Bialecki, blink-dev
Hi Yoav,

The experiment would run for two releases. We do not have a strong partner lined up, which is a key reason why we want to run this origin trial. There is a very active XR community that has been using a lot of APIs we've been implementing behind a flag. All the previous XR APIs we launched (and some coming) were required or strongly recommended for all XR experiences so they had obvious integrations in popular libraries such as three.js, model-viewer, or aframe but this one is an advanced feature and we would like to see what the community does with it and hear their feedback before launching it.

-- Mounir

Yoav Weiss

Oct 13, 2020, 2:07:47 AM10/13/20
to Mounir Lamouri, Piotr Bialecki, blink-dev
Do you have any community members that have expressed interest and intend to try the feature out? I'm concerned about a situation where the OT would run and end before any meaningful feedback would be collected, which is not uncommon in OTs that don't have partners lined up ahead of time.

Mounir Lamouri

Oct 13, 2020, 3:21:13 PM10/13/20
to Yoav Weiss, Piotr Bialecki, blink-dev
The feature itself is available in both ARCore (Android) and ARKit (iOS) and is used by the native AR viewers on the respective platforms so we are not quite worried about the feature itself being useful. However, the working group has been going through a lot of changes recently and we are not sure we would get a lot of feedback on the API shape at the moment. We could attempt to launch in the next release but it feels that delaying a bit while allowing web developers to experiment with it is a better option. The XR community has been very active and I would expect a few authors to try out this feature and that would be better than having them try it out by asking users to turn on a flag. We do not expect strong feedback on the API shape from web developers as it is a simple addition to WebXR (one new method returning an object).

In short, by running an origin trial, we allow web developers to experiment with an API that we think is ready while allowing the working group to give us more feedback. By not launching now, we commit ourselves to update the API if the feedback comes before the end of the OT.

-- Mounir

Yoav Weiss

Oct 13, 2020, 5:04:55 PM10/13/20
to Mounir Lamouri, Piotr Bialecki, blink-dev
That makes sense. LGTM to experiment.

Just to clarify, we're talking about experimenting in M87-88?

Mounir Lamouri

Oct 13, 2020, 5:48:19 PM10/13/20
to Yoav Weiss, Piotr Bialecki, blink-dev
That's correct, assuming that we can still catch the M87 train. I believe it should be the case.

-- Mounir
Reply all
Reply to author
0 new messages