A polyfill for the motion sensors based on the W3C Generic Sensor API

Downloads in past


0.3.7a year ago6 years agoMinified + gzip package size for motion-sensors-polyfill in KB


W3C Generic Sensor API polyfills
This is a polyfill for Generic Sensor-based motions sensors to make migration from the old DeviceOrientationEvent/DeviceMotionEvent to the new APIs a smoother experience.
In particular, this polyfill will allow the users of modern browsers to get a feel of the new API shape before it ships more broadly.
src/motion-sensors.js implements the following interfaces:

src/geolocation.js implements the following interface:
How to use the polyfill
<script type="module">
// Import the objects you need.
import {
} from './src/motion-sensors.js';

// And they're ready for use!
let gyroscope = new Gyroscope({ frequency: 15 });
let orientation = new AbsoluteOrientationSensor({ frequency: 60 });
How to enable the native implementation in Chrome
Chrome 67 or later: the native implementation is enabled by default.
The Generic Sensor Extra Classes (chrome://flags/#enable-generic-sensor-extra-classes) feature flag can be activated to enable a few additional sensor types:
  • AmbientLightSensor
  • Magnetometer
Test suite
Run web-platform-tests with this polyfill enabled here.
Known issues
  • AbsoluteOrientationSensor on iOS uses non-standard webkitCompassHeading that reports wrong readings if the device is held in its portrait-secondary orientation. Specifically, the webkitCompassHeading flips by 180 degrees when tilted only slightly.
Learn more
Reporting a security issue
If you have information about a security issue or vulnerability with an Intel-maintained open source project on, please send an e-mail to Encrypt sensitive information using our PGP public key. For issues related to Intel products, please visit