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

The read-only primaryLightIntensity property of the XRLightEstimate interface returns a DOMPointReadOnly representing the intensity of the primary light source from the probeSpace of an XRLightProbe.


A DOMPointReadOnly object where an RGB value is mapped to the x, y, and z values. The w value is always 1.0. If no estimated values from the user's environment are available, the point will be {x: 0.0, y: 0.0, z: 0.0, w: 1.0}, representing no illumination.


Within an XRFrame loop, you can use the primaryLightDirection and primaryLightIntensity properties to render shadows based on the most prominent light source, for example.

const lightProbe = await xrSession.requestLightProbe();

// frame loop
function onXRFrame(time, xrFrame) {
  let lightEstimate = xrFrame.getLightEstimate(lightProbe);

  // Render lights

  // Available properties


WebXR Lighting Estimation API Level 1
# dom-xrlightestimate-primarylightintensity

Browser compatibility

BCD tables only load in the browser

See also