JSPM

  • Created
  • Published
  • Downloads 12569
  • Score
    100M100P100Q136209F
  • License Apache-2.0

Use WebVR today, on mobile or desktop, without requiring a special browser build.

Package Exports

  • webvr-polyfill
  • webvr-polyfill/build/webvr-polyfill
  • webvr-polyfill/src/main
  • webvr-polyfill/src/util
  • webvr-polyfill/src/webvr-polyfill

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (webvr-polyfill) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

WebVR Polyfill

This project provides a JavaScript implementation of the WebVR spec.

The goal of this project is two fold:

  1. Use WebVR today, without requiring a special browser build.
  2. View (mono) content without a virtual reality headset.

Implementation

The polyfill decides which VRDevices to provide, depending on the configuration of your browser. Mobile devices provide both the FusedPositionSensorVRDevice and the CardboardHMDVRDevice. Desktop devices use the MouseKeyboardPositionSensorVRDevice.

CardboardHMDVRDevice provides default parameters for Cardboard's interpupillary distance and headset.

MouseKeyboardPositionSensorVRDevice uses mouse events to allow you to do the equivalent of mouselook. It also uses keyboard arrows and WASD keys to look around the scene with the keyboard.

FusedPositionSensorVRDevice uses DeviceMotionEvents and implements a complementary filter which does sensor fusion. This device also implements pose prediction, which greatly improves head tracking performance.

Deprecated: OrientationPositionSensorVRDevice uses DeviceOrientationEvents to polyfill head-tracking on mobile devices.

Experimental: WebcamPositionSensorVRDevice uses your laptop's webcam in order to introduce translational degrees of freedom.

Configuration

The polyfill can be configured and debugged with various options. The following are supported:

WebVRConfig = {
  // Forces availability of VR mode.
  //FORCE_ENABLE_VR: true, // Default: false.
  // Complementary filter coefficient. 0 for accelerometer, 1 for gyro.
  //K_FILTER: 0.98, // Default: 0.98.
  // How far into the future to predict during fast motion.
  //PREDICTION_TIME_S: 0.050, // Default: 0.050s.
  // Flag to disable touch panner. In case you have your own touch controls
  //TOUCH_PANNER_DISABLED: true, // Default: false.
  // Enable yaw panning only, disabling roll and pitch. This can be useful
  // for panoramas with nothing interesting above or below.
  //YAW_ONLY: true, // Default: false.
  // To disable keyboard and mouse controls. If you implement your own.
  //MOUSE_KEYBOARD_CONTROLS_DISABLED: true // Default: false
}