VR-mode apps super sensitive to motion

On Chrome m66 on Android the camera is super sensitive to motion. The camera jumps around like crazy. Try for example the “WebVR Lab” project with Chrome on an Android device:
https://playcanvas.com/project/446331/overview/webvr-lab

We see exactly the same behaviour in our Playcanvas project:

The issue is not unique to PlayCanvas: it’s also reported for Aframe. See for example: Camera is super sensitive to motion on Chrome Beta 66 on Android · Issue #3476 · aframevr/aframe · GitHub
Video illustrating the issue: Chrome Beta 66 / A-frame 0.8.0 camera issue on Vimeo

Root of the problem is that DeviceMotionEvent.rotationRate units have changed from degrees per second to radians on Chrome m66.

This has been going on for months now. Has nobody else experienced this problem?
Any solutions?

Thanks,
– Rob

That’s really useful to know. Maybe a patch can be applied to the engine?

If you go to chrome://flags and enable WebVR, everything works as expected. This leads me to think that the polyfill for WebVR needs updating.

We we’re thinking the same. We tried to update polyfill ourselves, but there’s some playcanvas initialization taking place that we haven’t figured out yet. Who do we need to buy a beer to get polyfill updated in playcanvas?

You can try making a pull request in their repo which will help make it happen faster

I’ve just quickly tried a quick fix in a downloaded build webpolyfill and confirmed that it does need to be changed. I haven’t had time to make a ‘proper’ fix myself as it needs to detect Chrome m66 before making that change and I think I had gimbal lock issues.