WebXR

Last updated
WebXR
WebXR Device API
AbbreviationWebXR
Status
  • Candidate Recommendation (CR)
    • Device API
    • Augmented Reality Module
  • Working Draft (WD)
    • Layers API
    • Hand Input Module
    • Gamepads Module
  • First Public Working Draft (FPWD)
    • Lighting Estimation API
    • Hit Test Module
    • DOM Overlays Module
    • Depth Sensing Module
  • Editor's Draft (ED)
    • Anchors Module
Organization W3C
Committee
  • Immersive Web Community Group
  • Immersive Web Working Group
Editors
  • Rik Cabanier
  • Manish Goregaokar
  • Brandon Jones
  • Nell Waliczek
Base standards
Domain
Website immersive-web.github.io

WebXR Device API is a Web application programming interface (API) [1] [2] that describes support for accessing augmented reality and virtual reality devices, such as the HTC Vive, Oculus Rift, Oculus Quest, Google Cardboard, HoloLens, Apple Vision Pro, Magic Leap or Open Source Virtual Reality (OSVR), in a web browser. [3] [4] The WebXR Device API and related APIs [5] are standards defined by W3C groups, the Immersive Web Community Group [6] and Immersive Web Working Group. [7] [8] While the Community Group works on the proposals in the incubation period, the Working Group defines the final web specifications to be implemented by the browsers. [9] [10] [11]

Contents

WebVR was an experimental Web API that was only capable of representing virtual reality and was superseded by WebXR. [12] [13] [14]

History

WebVR API was first conceived in spring 2014 by Vladimir Vukićević from Mozilla. The API's contributors include Brandon Jones(Google), Boris Smus and others from the Mozilla team. [15] On March 1, 2016, the Mozilla VR team and the Google Chrome team announced the version 1.0 release of the WebVR API proposal. The resulting API refactoring brought many improvements to WebVR. [16]

The latest WebXR Device API Working Draft was last published in February 2022. [4] The editors of the specification currently are from Google and Meta. Other members from Mozilla, Microsoft, Samsung Electronics and Apple, as well as various startups and invited experts have input in the future of the specification. [17] All of the discussions of the specifications are public on GitHub. [18]

In 2018, the WebXR Device API superseded WebVR, being designed for both augmented reality, virtual reality devices and the possible future realities and devices. [12] [13] [19] WebVR was implemented in Firefox and Chromium-based browsers before being deprecated and removed. On September 24, 2018, the Immersive Web Working Group became official. [20]

Design

The WebXR Device API exposes a few new interfaces (such as XRView, [19] XRPose [21] ) that allow web applications to present content in virtual reality and augmented reality, by using WebGL with the necessary camera settings and device interactions (such as controllers or point of view).

Support

WebXR Device API [22] (Candidate Recommendation Draft) is currently supported in the stable versions of Edge and Chrome 79+, Chrome for Android 79+, Opera 66+, Opera Mobile 64+, Samsung Internet 12+, and Oculus Browser. [23] [24] WebXR is supported in Safari for visionOS on the Apple Vision Pro mixed reality headset. [25]

Similar technologies

Although WebXR is unique as an API, it has similarities to native APIs in the same space such as OpenXR, ARCore, and ARKit.

See also

Related Research Articles

<span class="mw-page-title-main">Document Object Model</span> Convention for representing and interacting with objects in HTML, XHTML, and XML documents

The Document Object Model (DOM) is a cross-platform and language-independent interface that treats an HTML or XML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree; with them one can change the structure, style or content of a document. Nodes can have event handlers attached to them. Once an event is triggered, the event handlers get executed.

A browser extension is a software module for customizing a web browser. Browsers typically allow users to install a variety of extensions, including user interface modifications, cookie management, ad blocking, and the custom scripting and styling of web pages.

<span class="mw-page-title-main">HTML5</span> Fifth and previous version of HyperText Markup Language

HTML5 is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML Living Standard. It is maintained by the Web Hypertext Application Technology Working Group (WHATWG), a consortium of the major browser vendors.

Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages which mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated.

Web storage, sometimes known as DOM storage, is a standard JavaScript API provided by web browsers. It enables websites to store persistent data on users' devices similar to cookies, but with much larger capacity and no information sent in HTTP headers. There are two main web storage types: local storage and session storage, behaving similarly to persistent cookies and session cookies respectively. Web Storage is standardized by the World Wide Web Consortium (W3C) and WHATWG, and is supported by all major browsers.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics, image processing, and effects in the HTML canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

The Indexed Database API is a JavaScript application programming interface (API) provided by web browsers for managing a NoSQL database of objects. It is a standard maintained by the World Wide Web Consortium (W3C).

Cross-origin resource sharing (CORS) is a mechanism that allows a web page to access restricted resources from a server on a domain different than the domain that served the web page.

Web SQL Database is a deprecated web browser API specification for storing data in databases that can be queried using SQL variant. The technology was only ever implemented in Blink-based browsers like Google Chrome and the new Microsoft Edge, and WebKit-based browsers like Safari. As of February 2024, WebSQL is being phased out in favor of WebStorage and IndexedDB and OPFS, but still available in some contexts under restrictive conditions.

WebRTC is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication and streaming to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.

HTML audio is a subject of the HTML specification, incorporating audio input, playback, and synthesis, all in the browser.

Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions. The community is supported institutionally by the non-profit Mozilla Foundation and its tax-paying subsidiary, the Mozilla Corporation.

WebAR, previously known as the Augmented Web, is a web technology that allows for augmented reality functionality within a web browser. It is a combination of HTML, Web Audio, WebGL, and WebRTC. From 2020s more known as web-based Augmented Reality or WebAR, which is about the use of augmented reality elements in browsers.

Web Components are a set of features that provide a standard component model for the web allowing for encapsulation and interoperability of individual HTML elements. Web Components are popular approach to build microfrontends.

<span class="mw-page-title-main">WebAssembly</span> Cross-platform assembly language and bytecode designed for execution in web browsers

WebAssembly defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.

<span class="mw-page-title-main">Progressive web app</span> Specific form of single page web application

A progressive web application (PWA), or progressive web app, is a type of application software delivered through the web, built using common web technologies including HTML, CSS, JavaScript, and WebAssembly. It is intended to work on any platform with a standards-compliant browser, including desktop and mobile devices.

WebGPU is a JavaScript API provided by a web browser that enables webpage scripts to efficiently utilize a device's graphics processing unit (GPU). This is achieved with the underlying Vulkan, Metal, or Direct3D 12 system APIs. On relevant devices, WebGPU is intended to supersede the older WebGL standard.

OpenXR is an open-source, royalty-free standard for access to virtual reality and augmented reality platforms and devices. It is developed by a working group managed by the Khronos Group consortium. OpenXR was announced by the Khronos Group on February 27, 2017, during GDC 2017. A provisional version of the standard was released on March 18, 2019, to enable developers and implementers to provide feedback on it. On July 29, 2019, OpenXR 1.0 was released to the public by Khronos Group at SIGGRAPH 2019.

<span class="mw-page-title-main">David Baron (computer scientist)</span> American computer scientist

David Baron is an American computer scientist, web browser engineer, open web standards author, technology speaker, and open source contributor. He has written and edits several CSS web standards specifications including CSS Color Module Level 3, CSS Conditional Rules, and several working drafts. He started working on Mozilla in 1998, and was employed by Mozilla in 2003 to help develop and evolve the Gecko rendering engine, eventually as a Distinguished Engineer in 2013. He was Mozilla’s representative on the WHATWG Steering Group from 2017-2020. He has served on the W3C Technical Architecture Group (TAG) continuously since being elected in 2015 and re-elected subsequently, most recently in 2020. In 2021 he joined Google to work on Google Chrome.

References

  1. "Web APIs | MDN". developer.mozilla.org. Retrieved 2022-03-01.
  2. "Why You Should Be Paying Attention to WebXR". CrossComm. Retrieved 2022-03-01.
  3. "Fundamentals of WebXR". MDN Web Docs . Retrieved 22 December 2021.
  4. 1 2 "WebXR Device API". www.w3.org. Retrieved 2022-03-01.
  5. "The Immersive Web Working Group/Community Group". immersive-web.github.io. Retrieved 2022-03-01.
  6. "Immersive Web Community Group". www.w3.org. 22 March 2017. Retrieved 2022-03-01.
  7. "Immersive Web Working Group". www.w3.org. Retrieved 2022-03-01.
  8. "WebXR Device API - Web APIs | MDN". developer.mozilla.org. Retrieved 2022-03-01.
  9. Immersive Web Community Group Proposals Repo, Immersive Web at W3C, 2022-02-21, retrieved 2022-03-01
  10. "Community and Business Group Process | Community and Business Groups". www.w3.org. Retrieved 2022-03-01.
  11. "Standards/Participating in a W3C Working Group - MozillaWiki". wiki.mozilla.org. Retrieved 2022-03-01.
  12. 1 2 Vrignaud, Andre (October 20, 2017). "Bringing Mixed Reality to the Web – The Mozilla Blog". The Mozilla Blog. Retrieved December 23, 2021.
  13. 1 2 Medley, Joseph (May 2018). "Welcome to the immersive web". Google Developers. Retrieved December 23, 2021.
  14. "WebVR API". MDN Web Docs . Retrieved 2015-11-04.
  15. "WebVR Deprecated Specification". W3C webvr. 2022-02-28.
  16. Yee, Casey (March 1, 2016). "Introducing the WebVR 1.0 API Proposal". Mozilla Hacks. Retrieved 2021-12-23.
  17. "Immersive Web Working Group - Participants". www.w3.org. Retrieved 2022-03-01.
  18. "Immersive Web at W3C". GitHub. Retrieved 2022-03-01.
  19. 1 2 "WebXR Device API". immersive-web.github.io. Retrieved 2022-03-01.
  20. "Immersive Web Working Group Charter" . Retrieved December 23, 2021.
  21. "WebXR Device API". immersive-web.github.io. Retrieved 2022-03-01.
  22. "WebXR Device API". W3C . Retrieved 2024-02-17.
  23. ""webxr" | Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Retrieved 2022-03-01.
  24. "Introduction to Oculus Browser | Oculus Developers". developer.oculus.com. Retrieved 2022-03-01.
  25. "Meet Safari for spatial computing". developer.apple.com. Retrieved 2024-02-17.