Blog

A-Frame v0.6.0 - Link Traversal

A-Frame v0.6.0 at last fulfills the “Web” in WebVR. After three months of work, this release features support for WebVR 1.1 API features such as link traversal that shipped on Firefox Nightly (and soon release Firefox 55), portals, and fills out controller support for Daydream and GearVR including a component for laser interactions.

Use it today with <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> .

After years of waiting, link traversal has finally landed in a desktop browser with Firefox in the WebVR 1.1 API, and A-Frame is there to help you travel from world to world. Link traversal lets us stay in VR as we travel between VR web pages, at last fulfilling one of the key promises of WebVR. This is accomplished by listening to a browser event on page load and kicking into VR, but A-Frame also provides a link component and portals so we can zip through the Metaverse in style.

Developed by Diego, the portals are represented as windows into another scene, powered by 360° panoramic images, which can be taken in A-Frame using the screenshot shortcut <ctrl> + <alt> + <shift> + s .

Try link traversal out with Firefox Nightly and a headset or read the link docs. We’ll have another blog post in detail soon.

A-Frame completes the collection by providing components out of the box for controllers for every major headset: vive-controls , oculus-touch-controls , daydream-controls , and gearvr-controls . Want to support them all at once in your application? Just toss in <a-entity laser-controls></a-entity> and we have a ray-based control scheme that scales across every type of controller.

There have been major gains in performance. We’ve:

Added some caching and reduced some type checking in critical paths of object updates.

Reduced memory usage by caching textures.

Reduced memory usage by reducing the number of instantiated JavaScript objects.

Eliminated duplicate asset network requests when using <a-assets> .

. Throttled the componentchanged event which gets emitted very often.

Some nice cherries on top are the shadow component for creating real-time shadows. Add some depth and presence to our scene alongside lights. Brought to you by our now core A-Frame developer, @donrmccurdy. And add some post-processing with aframe-effects by @wizgrav.

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?

We’ve had over 20 entries of A Week of A-Frame since v0.5.0 was released. Highlights include Google using A-Frame for one of their WebVR Experiments and Google Expeditions, A-Frame experiences featured at the Tribeca / Cannes / Tokushima festivals, and increasing usage of A-Frame for augmented reality experiments.

The component of the year goes to the Environment Component, infinite seeded procedural and customizable environments:

Numbers

Since v0.5.0 was released in February 2017:

A-Frame has gained over 45 new contributors, totalling to 169.

216 GitHub issues were opened, 251 were closed.

240 GitHub pull requests were opened, 251 were closed.

150,000 people have visited aframe.io.

In total:

The A-Frame Slack has 3,984 members.

On npm, A-Frame has been downloaded 26,000 times, and aframe-react 15,000 times.

530,000 people have visited aframe.io.

There may be some regressions related to .setAttribute and raycasters drawing a line. We’ll push out an 0.6.1 soon also including support for Firefox for Android.

@machenmusik is currently ushering in support for Vive trackers to bring in real world objects into the VR world. Also expect support for SteamVR Knuckles controller once that is released.

Much work is being done on multiuser experiences including @HaydenLee37‘s networked-aframe, @superhoge‘s THREENetwork , as well as some thought on how to performantly achieve networked physics. These WebRTC experiments succeed previous WebSocket and Firebase-based experiments. We’ll be releasing blog posts on making A-Painter multiuser and link traversal across modifiable environments multiuser.

And lastly, more work on in-VR content creation and tools. A-Frame is a great start on lowering the barrier of entry with web technologies, but we can knock down that wall harder by content creation more literally into our hands.