The State of webVR

The State of webVR

posted in: webVR | 0

There is a big (and exciting!) change in the API that breaks most of our current webVR stuff in the latest chromium builds (and upcoming at some point in Firefox).

This is being done to improve the API and make it better match what VR and AR has become since browser webVR was introduced. Major overhauls like this are hard to do once something becomes too popular so this change is being made earlier when it only affects a small number of other developers rather than later when the whole web is dependent on it and everyone feels stuck with all of the problems forever. Brandon Jones (the Chromium webVR guy) has a more detailed blog post about the reasons for the API changes in webVR 1.0 here:, and you can learn more about webVR generally here:

Separately, Chromium with webVR capability is now only available for Windows, which, unfortunately, is understandable given that both the HTC Vive and the Oculus headsets are now Windows only.

The new API is here:

The old API is here:

For the most part, this will require a major update to our boilerplate and then moving that boilerplate out into all of our projects. We have already started moving some of our more recent and any actively developed projects over to the new API. This includes things like “Float”, “Peachy Rings”, and our drawing and scanning projects that we have been showing recently.

On the other hand, we may never get around to updating all of our older and more experimental projects. Additionally, due to the mixed support currently amongst browsers for the new API, it’s hard to know when or whether is a good time to change our code to break things for the smallest number of people. Technically it is possible to go out of the way to support both specs, but, realistically, maintaining that kind of backwards compatibility for something being obsoleted is not a good idea.

To this end, we will soon be publishing a completely *separate* webVR boilerplate that supports the new webVR 1.0 API (and not the old one). The current boilerplate will remain available here:, but will be considered obsoleted.