The Internet of Places

March 7, 2022
Sullivan Huebner | [email protected]

You only need to spend about an hour diving into VR to hear the word “instance.” This holds true regardless of platform — whether you’re on VRChat, AltspaceVR, or Horizon, the topic of instances is going to come up eventually. Maybe you’ll even hear the phrases “instance limit,” “instance moderation,” or “instance status.”

But, what exactly is an instance?

First, let’s look at a world. Any world will do, but in our case, let’s look at one built by XPR Labs — the XPR Auditorium. You can see it to the left there — it’s that nice looking stage with the seats in front of it, red curtains, spotlights, etc.

Now, imagine that I want to put on a show in that environment. I need to open a server, using that venue as the location, so that other users can join me — this server is referred to as the instance. When people join me in that environment, they’ve joined my instance.

There are a few ways that this instance may be hosted. Of course, the most straightforward would be to have a central server somewhere that hosts it — however, that’s pretty costly once we start scaling up. Another way is to have the person who started the instance host it on their own, local network, but this incurs performance issues if their PC is underpowered, and potentially security risks if their network security isn’t on point.

In the case of many services, a happy medium approach is employed, where the server is jointly hosted between the people in the instance. They share the load, and effectively use relay servers to communicate with each other. This increases performance, while ensuring that objects and avatars are synced up.

So, now you know what an instance is, technically speaking. The idea of an instance limit should now be pretty apparent — no server has infinite load, so most VR services place a cap on how many users can load into an instance. In VRChat, the limit is exactly 80; in Horizon, the limit is lower, and also lowers dynamically based on the complexity of the environment.

Instances can also have a variety of meta-attributes, if you’ll excuse my pun! An instance can limit the types of people who can join, assign certain moderation privileges to the primary host, or only allow friends of the host or registered users to join. Instances can even be limited to specific VR hardware — the Oculus Quest 2 is a notable example, as it has lower processing power than dedicated PC VR setups, and can’t handle overly complex or unoptimized environments.

Now, let’s talk about what makes instances so powerful. Let’s go back to the XPR Auditorium — imagine that I’ve brought in a great musician, and the room is jam-packed, right up to the instance limit. But, what if I want to fit even more people, or someone else wants to use the environment at the same time?

Of course, if this were a physical space, this would be a moot point — you can’t exactly clone a physical space, or fit more seats in when you’ve already packed the house. However, in VR, we can clone the space!

Depending on the environment, any number of instances can be made using the same space. If I want to run two shows at the same time in the auditorium, I can — I just need to make a separate instance for each. Or, if I want to extend my capacity, I can send a hologram of my performer or a livestream of their performance to every instance of the auditorium, creating virtually unlimited capacity.

Another way to think of instances, in more practical (but I suppose also more abstract) terms, is like multiple dimensions. Euclidean geometry doesn’t apply here — a skyscraper can have infinite floors, I can have infinite copies of a room, or display a speaker across any number of instances. Neat!

You’re probably already seeing the utility here. With a VR environment hosted through instances, events or shows of any scale can be hosted. In terms of scalability, this is top-notch stuff.

In XPR Events’ experience, the ability to generate multiple instances has been absolutely invaluable. With current technology, no single server is going to be able to handle tens of thousands of VR users at once. However, we were still able to put on a conference, JobCon 2021, with more than 65,000 attendees.

This was achieved through instances! We spread our attendees across multiple instances, and cloned the exhibition floors and lobby as needed to accommodate every single guest. Furthermore, when speakers went live in the auditorium, we maintained a single VIP instance with the speaker, and sent a livestream of the keynote to every single video player across every instance in existence.

This is great for us as the hosts, but it’s great for advertisers and exhibitors too. Their advertisement or booth was copied along with each instance, generating more total impressions and ensuring that they could get viewership without the drawbacks of crowded spaces.

So, ultimately, instances benefit everyone! They enable infinite scaling of VR spaces, while improving user experience and performance, reducing server load, improving the impression rate of advertisers, and allowing organizers to bring in bigger crowds.

Check out the column next week for an inside look at how an event in one of these instances is set up, and how anyone can get involved in VR event organization!

Sullivan Huebner