XRSession: requestLightProbe() method

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The requestLightProbe() method of the XRSession interface returns a Promise that resolves with an XRLightProbe object that estimates lighting information at a given point in the user's environment.




options Optional

An object containing configuration options, specifically:


The internal reflection format indicating how the texture data is represented, either srgba8 (default value) or rgba16f. See also XRSession.preferredReflectionFormat.

Return value

A Promise that resolves with an XRLightProbe object.


Rather than throwing true exceptions, requestLightProbe() rejects the returned promise with a DOMException, specifically, one of the following:

NotSupportedError DOMException

Thrown if lighting-estimation is not an enabled feature in XRSystem.requestSession() or if the reflectionFormat is not srgb8 or the preferredReflectionFormat.

InvalidStateError DOMException

Thrown if the session has already ended.


Requesting a light probe with the system's preferred format

The default format is srgb8, however, some rendering engines may use other (high dynamic range) formats. You can request the light probe with XRSession.preferredReflectionFormat which reports the preferred internal format.

const lightProbe = await xrSession.requestLightProbe({
  reflectionFormat: xrSession.preferredReflectionFormat,


WebXR Lighting Estimation API Level 1
# dom-xrsession-requestlightprobe

Browser compatibility

BCD tables only load in the browser

See also