Skip to main content
New Participant
May 3, 2024

Spatial Anchor Sharing using router without internet

Hello,

I am currently working on a MR app using Unreal Engine 5.3.2 and we have successfully implemented spatial anchor sharing within our app for local multiplayer on an internet connection. However, for security reasons, we need our app to work without internet connection. But after many tests, we have realized that the spatial anchor sharing does not work on a router that is not connected to the internet. Spatial anchor sharing most probably uses Oculus cloud services to save the spatial anchors to be shared on the cloud. 

Using routers without internet is a crucial aspect of our app. Each headset connects to the router and within the app, we are still able to create and join multiplayer sessions using LAN. The fact that the spatial anchor sharing does not work in these conditions is a huge blocker for us. 

Do I have that right? Is there a way to bypass this requirement? If not, what can be done?

Thank you in advance for the help!

6 replies

jtriveri
Honored Contributor
May 7, 2024

You’re correct - shared spatial anchors rely on meta’s online services 😞

You’ll either have to make a manual alignment system or build your own automatic alignment system using the Scene Room Mesh or Depth API (though that would be a complex task). 

jatalCXRAuthor
New Participant
May 7, 2024

I see. Thank you! Would scanning a QR code work too? The QR code can represent the common world origin for all players.

jtriveri
Honored Contributor
May 8, 2024

You would need to get the camera feed from the app which isn’t possible without a janky workaround. Meta doesn’t give you access to the RGB camera feed in your app, only depth, and they don’t provide any API for reading QR codes 😞

it may be possible to run a tool like scrcpy or use the video feed from the built-in streaming feature, but, like I said, this would be a pretty janky workaround. 

jatalCXRAuthor
New Participant
May 8, 2024

You're right. I'm thinking I could potentially ask each player within the multiplayer session to manually position an anchor all at the same agreed physical spot (for example a corner of a wall) so they all share the same anchor that could be used as an origin anchor. That way we can align the worlds correctly. Does that make sense?

jtriveri
Honored Contributor
May 9, 2024

I think the easiest setup is have them position the same two points on the floor because

  • the floor is usually in the same Y pos in real space for all the headsets and its easy to point to
  • the point A can serve to anchor the position
  • the second point can serve to anchor the rotation with a vector from point A to point B

Point A and B should be several meters apart to best calibrate rotation. This setup has worked for me before shared anchors were a thing 🙂

florianbuchholz1988
Inspiring
July 10, 2024

I also would love this feature, since this kills every colocation app that just could be used locally. And from a technical standpoint, this would be possible.