Today, we’re excited to introduce new APIs that make it easier to create mixed reality experiences for multiple people in the same room. These “colocated” mixed reality experiences blur the line between the physical and virtual world, enabling shared app experiences that feel like a magical leap beyond ordinary reality.
Up until now, creating and joining colocated experiences using Shared Spatial Anchors (SSA) has been an involved process for both users and developers. Joining a colocated experience necessitated users self-organizing their own party through a lobby and required the host user to share all room anchors with newcomers as they joined. In addition, the current APIs require developers to manage the user IDs of all colocated users.
Now,
Colocation Discovery and
Group Sharing for Unity, Unreal, and OpenXR are changing all of that. These features address previous friction points by providing support for Bluetooth device discovery and enabling groups of users to share and retrieve anchors based on a group ID—negating the need for developers to track and manage user IDs.
Keep reading below to learn more about these new features and how we’re enabling seamless colocation for you and your app’s users. Introducing Colocation Discovery and Group Sharing
Available with v71 and later, Colocation Discovery and Group Sharing are the newest improvements in colocation. These APIs can be used separately, but work very well together to detect nearby Meta Quest devices and establish colocated sessions.
Discover Nearby Devices via Bluetooth
Colocation Discovery allows apps to discover other Quest devices that are running the same app within approximately 30 feet of each other. We anticipate you'll discover several use cases for this API, including establishing groups of colocated users. For example, you can quickly establish a multiplayer session composed of users within close proximity by advertising session metadata over the Bluetooth connection.
This location-centric solution for automatically organizing users streamlines the process of joining experiences when compared to a typical multiplayer lobby UI, and can substantially reduce “time to fun”.
Anchor Sharing Made Easier
Group Sharing helps reduce developer overhead when building colocated experiences using the
Shared Spatial Anchors (SSA) APIs. Previously, apps needed to keep track of the Quest user IDs for each user and then share each spatial anchor using those IDs. As new users joined a colocated session and as more spatial anchors were shared, colocated apps were responsible for tracking which spatial anchors had been shared with each user.
Group Sharing eliminates the need for this user-specific tracking by allowing all users to share spatial anchors to a unique identifier representing an entire group of users. This means that you no longer need to depend on APIs for retrieving the user IDs and communicating them to each app instance. Additionally, as more spatial anchors are added, they only need to be shared once and users can query all anchors shared with the group using the unique group ID.
The unique identifier (GUID) representing a group is app-defined, unrelated to any user identity, and only needs to be communicated to each app instance once.
Putting It All Together
While Colocation Discovery and Group Sharing can be deployed individually, using these two APIs together allows users to quickly jump into colocated experiences while minimizing complexity and overhead. These APIs eliminate the need for users to manually determine whether the host is colocated and reduce the amount of bookkeeping required for sharing spatial anchors as more users join and more anchors are shared.
With these updates, the stage is set to easily support colocated experiences that enable users to join together in shared, unique environments and discover the magic of mixed reality with friends and family. We’re excited to see how you use Colocation Discovery and Group Sharing to innovate and explore more use cases that enhance the way people connect, play, and work.
To dive deeper into each of the updates above and learn how to implement them, please visit the documentation below.