Over the last year, a lot of work went into making the Primrose WebVR framework much more reliable, easier to use, and with more complete documentation. This is the first release announcement we've written since May 2016, but that doesn't mean we haven't been working. Indeed, the lack of announcements has specifically been because of how busy we've been in building Primrose and projects for clients using Primrose.

The big highlights are:

Primrose works on just about any platform you could want. We estimate 98% coverage for browsers and operating systems that people use in the wild.

We spent a lot of time getting Video to work on iOS¹, and we also have pretty good tracking and stereo rendering on iOS now².

One of our clients was featured on Bloomberg.com for the real-estate tour app we built for them (hence the iOS focus for so long).

It even works on MS Edge, in case you happen to find yourself there for some reason.

Firefox is no longer a second-class citizen.

On Chrome we've got some really cool Text-to-Speech features and will soon have Speech-to-Text exposed in the API. It's there! We just don't use it for anything, yet.

ES2016 modules, Rollup, and vertically integrating many of the project dependencies have given way to very small download payloads. Some of our demos have been as small as 650KB, with GZIPing getting it even further down to a slender 150KB (of course, your mileage will vary, depending on how many model, texture, and audio assets you load).

The documentation is about 80% complete, making us one of the most completely documented WebVR frameworks available.

The Future

The last two years³ have been a blast and we can't wait to bring more people on board. If you have ideas of your own, or are looking for an established open source project to join, let's chat! We're willing to work with anyone of any background or experience level.

You can see that this is still a v0.xx release, not a v1.0 yet. We've always had a very specific concept in mind for what Primrose would be, and that thing is very big. It's getting closer every day, but there are still some things missing, like being able to build VR scenes 100% from within a VR session. The current issues list--barring any future-discovered defects--is essentially "feature-complete for v1.0".

Thankfully, there is still a lot of fun code left to be written.

Updated Gear VR support and support for Facebook's Carmel browser are right around the corner.

We'll be looking to integrate more features in support of Augmented Reality in the near future, both in the areas of GPS tracking and marker tracking. You could theoretically re-build Pokemon GO in Primrose already.

We're experimenting with stereo 360 video support for a client right now.

As soon as Microsoft releases WebVR for Edge on the Hololens (which everyone expects to be very soon, considering their work on HoloJS), we'll be there to get your apps running in AR.

With Vive announcing the generic tracking puck, we've been experimenting with foot-based UIs and will be incorporating support for using motion controllers on the feet directly.

There's still no physics system, as we've not yet built anything that requires it, but it's certainly a desirable thing to have. That would be an excellent area for a new contributor to jump in.

Performance is already pretty good just from not doing anything obviously wrong like new-ing objects in the render path, but no specific work has gone into optimization yet.

The live-programming environment is still a big goal for us, with some exciting prospects for doing research into novel text input systems.

The meeting room demo has languished under an expired TokBox account, so now that this big release push is done, we'll be getting back to live, face-to-face teleconferencing with collaborative editing tools.

A number of social VR platforms like AltspaceVR and High-Fidelity have JavaScript APIs for building apps that run in-client. Primrose's architecture was designed from the beginning to eventually accommodate them, but we've just not yet done the work.

There's a huge opportunity to use Primrose for infographics.

We'd love to see some work in AI chatter-bots presented in WebVR.





Footnotes:

¹ You can have one video element running at a time, if it's muted. It's better than nothing. With clever spacing and restarting of video elements as they come into view, you can even make it pretty convincing that multiple elements were always running.

² While iOS doesn't support the HTML5 Full Screen API, it's still pretty usable without it in most Google Cardboard scenarios.

³ My first commit to the code base that eventually became Primrose was July 10, 2014.