WebVR

From HandWiki
Short description: Experimental JavaScript API that provides support for virtual reality devices

WebVR was an experimental JavaScript application programming interface (API) that enabled applications to interact with virtual reality devices, such as the HTC Vive, Oculus Rift, Google Cardboard or Open Source Virtual Reality (OSVR) in a web browser.[1] It was implemented in Firefox and Chromium-based browsers before being deprecated and removed. The WebVR API was superseded by a more powerful WebXR API that is capable of representing virtual reality and augmented reality devices simultaneously.[2][3]

This API is designed with the following goals in mind:[4]

  • Detect available virtual reality devices.
  • Query the device's capabilities.
  • Poll the device’s position and orientation.
  • Display imagery on the device at the appropriate frame rate.

History

WebVR API was first conceived in spring 2014 by Vladimir Vukićević from Mozilla. The API's contributors include Brandon Jones, Boris Smus and others from the Mozilla team.[5] 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.[6]

The last tagged version is 1.1,[7] which was last edited on April 5, 2017. The editors of the document include members from Mozilla and Google teams. However some Microsoft members have joined, and are actively collaborating in the drafting process of version 2.0 for the WebVR API.[8]

Design

The WebVR API exposes a few new interfaces (such as VR Display, VR pose) that allow web applications to present content in virtual reality, by using WebGL with the necessary camera settings and device interactions (such as controllers or point of view). The API has been designed to follow a certain path, which is very similar to other intrusive Web API like the Geolocation API. The necessary steps are:

  1. Request a list of the available VR devices.
  2. Check to see if the desired device supports the presentation modes the application needs.
  3. If so, application advertises VR functionality to the user.
  4. User performs an action that indicates they want to enter VR mode.
  5. Request a VR session to present VR content with.
  6. Begin a render loop that produces graphical frames to be displayed on the VR device.
  7. Continue producing frames until the user indicates that they wish to exit VR mode.
  8. End the VR session.

Support

WebVR 1.0 is currently supported in the release version of Firefox 55+ for Windows (64 bit version only)[9] and was supported by Chrome for Android until version 80[10] as an Origin Trial Experiment, which means that developers can request a token to add to their website which will seamlessly enable WebVR. WebVR 1.1 is supported in Microsoft Edge from build 15002+,[11] and in Samsung Internet, Chromium, Servo and Oculus Carmel.

Chrome for Windows supports WebVR 1.1 in a special build. Firefox 55+ on macOS also supports WebVR if a setting is enabled by the user.[9]

Similar technologies

Although WebVR is unique as an API, there are native applications on most hardware allowing for networked experiences and access to web content. Several key tools, such as Unity and Blender, are also able to export for the web and provide users a way to use their content without installing a dedicated application.

WebXR

In 2018, the WebXR API superseded WebVR, being designed for both augmented reality and virtual reality devices.[2][3]

See also

References