featured image

Building Mixed Reality spaces for the web


One of the primary goals of our Social Mixed Reality team is to enable and accelerate access to Mixed Reality-based communication. As mentioned in our announcement blog post, we feel meeting with others around the world in Mixed Reality should be as easy as sharing a link, and creating a virtual space to spend time in should be as easy as building your first website. In this post, we wanted to share an early look at some work we are doing to help achieve the second goal, making it easy for newcomers to create compelling 3D spaces suited for meeting in Mixed Reality.

Anyone who has gone through the A-Frame tutorials and learned the basics of creating boxes, spheres, and other entities soon find themselves wanting to build out a full 3D environment. Components such as the a-frame environment component can be a good start to adding life to the initial black void of an empty virtual space, but that mostly takes care of ‘background’ aspects to the space such as the sky, ground surface, and far-off objects like trees and clouds.

Beyond that, people quickly find themselves facing a roadblock: the kind of space they want to make is often more ambitious than what can be done with a few simple shapes, and needs to be more architectural and grounded in reality. To build such a space today requires a wide variety of knowledge and skills, from the obvious ones like modelling and texturing, to those more specific to Mixed Reality such as optimizing rendering performance and properly designing the architecture for scale and comfort in a headset.

If we want building your first space to be as easy as building your first website, there is clearly a lot of work to be done! So, what can we do to make it easier?

Modular by Design

What do Lego and IKEA have in common? Well, aside from originating from Scandinavian countries, they both make products whose designs embrace modularity to great effect. Through this modularity, just about anyone can put together a desk from IKEA or a spaceship from Lego, and a wide variety of products can be made due to the versatility of the parts. Why not apply these same ideas to building virtual spaces?

We are working on a system, all of which will be open sourced and freely available, which will allow anyone to create virtual spaces using a set of premade architectural elements that can be combined in countless ways. We’re not the first to come up with such a system, it’s been an approach growing in popularity and sophistication within game studios for building large, continuous worlds. In our case, the pieces in our system all follow a strict set of metrics that make the construction process as simple as possible and remove the guesswork involved in assembling a scene. The result is that a person with basic knowledge can quickly put together a virtual space that feels more like a real place and less like a world made up of simple shapes. For more experienced creators, the system can be used for rapid prototyping, allowing them to realize their ideas more quickly.

The most exciting part is that, combined with our other efforts, you’ll soon be able to visit the spaces you build with this system with anyone around the world, all from within Mixed Reality, by simply sharing a link.

Interior of a virtual industrial space made with modular 3d kit

Optimized for Mixed Reality

Creating experiences for Mixed Reality poses a unique set of challenges, such as the need to deliver high frame rates and a comfortable, immersive experience. Things can quickly fall apart when using assets that are too demanding for mobile devices or even lower-end PC hardware. Unfortunately, many assets you might obtain from various asset stores are often not optimized or designed for Mixed Reality experiences.

Our architectural modules are being built for Mixed Reality from the start. Vertex counts, texel density, and draw calls are just a few of the metrics we use to validate performance and to ensure that these assets can be used to build virtual spaces that run well on a wide range of devices. We have designed a grid system and an approach to composability that will ensure your space not only runs well, but also has proper scale and looks good within a Mixed Reality headset.

Our team’s mission is to enable access to Mixed Reality for communication, and this means we are committed to cross-platform compatibility, including lower-end devices. Our performance targets are chosen so that spaces designed with our system should have minimal rendering costs for even the lowest end mobile VR devices. This is hard work, but is necessary if we expect to allow everyone in the world to connect within this new medium, not just those who have access to high-end hardware.

Ultimately, the benefit of these efforts is that you, the creator, will spend less time worrying about graphics performance and basic design needs such as proper scale and proportion. Instead, you’ll be able to focus on what’s important: creating an amazing virtual space that people will want to spend many hours in together!

Interior of a virtual home made with modular 3d kit

This interior (and the one above) were made in just a few hours.


Next steps

We hope this work will help end the feeling of being overwhelmed by the ‘blank canvas’ when starting your first virtual space and instead, empower you to create, iterate, and share your creations quickly while reaching as many people as possible. You can expect to see more announcements from us soon on how we’ll be releasing this and other work in trying to deliver on this promise. You can follow our progress at @mozillareality or join the conversation in the #social channel on the WebXR slack. We’ll see you there!