Blog

A-Frame v0.8.0 - Performance and Production

By Kevin Ngo

The A-Frame train continues! v0.8.0 has been released, bringing many, many performance improvements through being battle-tested in production applications. Notably, we ported many fixes and performance through building out Supermedium using A-Frame!

We hit A Week of A-Frame 100, highlighting the long way we’ve come such that there are companies and startups taking the leap with A-Frame. There’s even an A-Frame application published on Steam VR! Including:

Ottifox - A nimble design app that helps you create VR and AR prototypes that run in the browser - without writing code.

Halo Labs - VR/AR design, prototyping, and collaboration solution for teams.

Archilogic - Turn floor plans into virtual tours.

Vragments - Build and publish your own 360 story.

Scapic - Create immersive worlds.

Lucid Web - WebVR player.

Ideaspace - CMS.

Supermedium - The virtual reality browser.

Alongside many other companies!

The biggest change is allowing to modify three.js Object3D position, rotation, scale, and visible directly while still maintining in sync in the A-Frame layer. There is currently overhead with .setAttribute , but all of that can be skipped for position, rotation, scale, visible by directly modifying three.js Object3D. That is a simple object property change. Since object transformations are one of the most often updated things, this saves on a lot of overhead. In general, we begin to try to find ways to skip .setAttribute when able.

Lots of other performance improvements, both in the core of A-Frame and in top A-Frame community components (e.g., animation). We scoured a lot of the codebase removing unnecessary memory allocations and event emissions.

We’ve also upgraded to three.js’s WebVR API, which was a long and grueling process to integrate and catch all the bugs, but we did it! Still a lot to be done on the performance side.

The A-Frame Inspector also got a few nifty features such as tree collapsing on the entity panel, pressing f to focus on an entity, and some bug fixes.

Check out the release notes for the complete changelog which includes a list of all new features, optimizations, and bug fixes.

What Have People Built?

Numbers

Since v0.7.0 was released in September 20th, 2017:

There have been 30 new contributors, totalling 223.

We have 1246 new members in the Slack community for a total of 5980.

202,000 people have visited aframe.io since last release.

We will continue performance improvements and battle testing. We will look at how to enable people to build more full applications and games versus small demos. That includes disseminating the knowledge we’ve gained from building a browser, full games, and complex applications using A-Frame. Via guides, frameworks, boilerplates, and open game projects!