Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Repository for the WebXR Device API Specification.

Subscribe to updates I use webvr

Statistics on webvr

Number of watchers on Github 741
Number of open issues 92
Average time to close an issue 20 days
Main language HTML
Average time to merge a PR 5 days
Open pull requests 16+
Closed pull requests 10+
Last commit over 1 year ago
Repo Created over 3 years ago
Repo Last Updated over 1 year ago
Size 1.29 MB
Homepage https://immersive...
Organization / Authorimmersive-web
Page Updated
Do you use webvr? Leave a review!
View open issues (92)
View webvr activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating webvr for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

WebXR Device API Specification

WebXR is driving support for accessing virtual reality (VR) and augmented reality (AR) devices, including sensors and head-mounted displays on the Web.

This is currently the repository for the WebVR Community Group and the WebXR Device API Specification. We have a charter (in progress).

The specification has recently undergone a name change, so expect to see multiple references to WebVR sprinkled throughout.


  • WebXR Device API Specification: Main specification for JavaScript API for accessing VR and AR devices, including sensors and head-mounted displays.
  • Legacy WebVR API Specification: Legacy WebVR API 1.1 specification for JavaScript API for accessing VR displays. Development of the WebVR API has halted in favor of being replaced the WebXR Device API. Several browsers will continue to support this version of the API in the meantime.
  • Gamepad API Specification: Introduces a low-level JS API interface for accessing gamepad devices.
  • Gamepad Extensions API Specification: Extends the Gamepad API to enable access to more advanced device capabilities.

Relevant Links



To generate the spec document (index.html) from the Bikeshed document:



For normative changes, a corresponding web-platform-tests PR is highly appreciated. Typically, both PRs will be merged at the same time. Note that a test change that contradicts the spec should not be merged before the corresponding spec change. If testing is not practical, please explain why and if appropriate file a web-platform-tests issue to follow up later. Add the type:untestable or type:missing-coverage label as appropriate.


Per the file:

All Reports in this Repository are licensed by Contributors under the W3C Software and Document License.

Contributions to Specifications are made under the W3C CLA.

Contributions to Test Suites are made under the W3C 3-clause BSD License

webvr open issues Ask a question     (View All Issues)
  • almost 3 years Should we have the ability to distinguish between opaque and see-through devices?
  • almost 3 years Constructable VRLayer instead of dictionary?
  • almost 3 years bitmaprenderer instead of submitFrame?
  • almost 3 years Clarify what happens when submitFrame is called at the wrong time
  • almost 3 years Example of usage for sittingToStandingTransform?
  • almost 3 years What do we all think of DOMMatrix?
  • almost 3 years Tracked objects besides gamepads
  • almost 3 years getFrameData() should return a new VRFrameData object instead of data-copying.
  • about 3 years Clarify renderWidth/Height: recommended size or 1:1?
  • about 3 years Clarification of requestPresent behavior when another requestPresent is pending
  • about 3 years Clarifcation of depthNear and depthFar behavior
  • about 3 years Clarification on connection/disconnection behavior
  • about 3 years VR terminology overview
  • about 3 years requestPresent giving gamepad permissions
  • about 3 years Spec timing of events
  • about 3 years Spec VR display idleness?
  • about 3 years Clarify ambiguity regarding when VRFrameData is refreshed
  • about 3 years Should `vrdisplayactivate` and `vrdisplayactivate` be consolidated to single event?
  • about 3 years Decide on a medium for consolidating spec conversations
  • about 3 years Should there be a `vrdisplaypresenterror` event?
  • about 3 years VRLayer should be a real interface and not a Dictionary
  • about 3 years getFrameData update of VRPose nullable readonly attributes
  • about 3 years Do not use EventHandler attribute names as event names
  • about 3 years Include code snippets for sample usage of events
  • about 3 years Clarify "VR is supported" in vrEnabled definition
  • about 3 years Fast Stereo Rendering For VR
  • about 3 years Why a Float32Array for @offset in VREyeParameters
  • about 3 years WebGLTexture as a VRLayer source
  • about 3 years Consider specing VR audio output and input (mic)
  • about 3 years Spec passthrough camera
webvr open pull requests (View All Pulls)
  • edit to for test suites
  • Remove proprietary WebIDL extended attributes
  • Use FrozenArray rather than sequences for attribute values
  • Added VRDisplayEvent type and activated/deactivated events
  • Describe when submitFrame is not called on every frame (fix #69)
  • Revert "Convert VRLayer to an interface"
  • Removed VREyeParameters and related refactors
  • Fix69
  • add auto Bikeshed deploy script via Travis CI (for issue #18)
  • Update navigator interface and event targets
  • Proposal for converting VRLayers into constructible objects
  • auto-build Bikeshed locally + update HTML on GH Pages (issue #18)
  • Add Coordinate systems and reference frames to WebVR
  • Deferred session requests
  • Add Basic Input description to the explainer
  • add `Tests` section to README (for `w3c/web-platform-tests`)
webvr questions on Stackoverflow (View All Questions)
  • Fixes to make webvr examples in THREE.js work with polyfill
  • Crosswalk and WebVR
  • Scaling an <a-sky> in aframe webvr
  • How to make THREE.Mesh look volumetric with WebVR?
  • Positioning a three.js object in front of the camera, but not tied to the camera, using webvr-boilerplate
  • Move in the direction I am looking (webvr, three js, Oculus Rift)
  • How to enable WebVR on WebView with krpano?
  • WebVR Boilerplate Problems - Manager not rendering in VRMode, Camera looks straight down, fullscreen renders only half of window
  • three.js - THREE.StereoEffect / webVR-boilerplate + THREE.Mirror
  • Playing 360 videos in Chromium and Mozilla nightly WebVR versions
  • WebVR - How to display on the headset screen AND a monitor screen
  • Sync rendered mouse (WebGL) and Pointer Lock coordinates in WebVR-mode
  • WebVR - headset position relative to tracker camera?
  • WebVR - no orientation or position from PositionSensorVRDevice
webvr list of languages used
Other projects in HTML