Shared AR in non-real-time

Include the following details (edit as applicable):

  • Issue category: Multiplayer / Real-time Mapping-Depth / Networking / VPS
  • Device type & OS version: Android
  • Host machine & OS version: Windows
  • Issue Environment : On Device
  • ARDK version: 2.0.0
  • Unity version: 2021.3.1f1

Description of the issue:

Hi everyone. I am new to ARDK and want to do this: I put an object in my room, and later my friend can see it with his phone without my phone connecting to his. Which means, I save my room (Environment) and object as data, and share those to my friend in non-real-time so that he will scan and map later.
The document on Shared AR writes that:

  • “When a client joins the session, Niantic’s AR Backend will immediately start sending it any mapping data that was uploaded by the host. You should have your user start scanning the same stationary object the host scanned, providing similar guidance as described in “Scan the Environment as Host” above.”

I hope that there is some way I can send and receive mapping data through Niantic’s AR Backend for later time. So can I do this without both Android devices connecting real-time? I also read about VPS but it is for iOS only.

One more thing. Is this mapping data accessible? I found that in the Pong LLAPI Example the relocalization is not so precise, so I wish to find out if I can improve it. But I don’t know how to access to that mapping data.

Any reply is appreciated. Thank you everyone.

Hello Long,

Please use VPS Wayspot Anchors to place virtual objects in an AR environment. Wayspot anchors allow user to precisely locate user’s AR content in the real world relative to a VPS-activated Wayspot or Private VPS Location. Wayspot Anchors can also be restored in future VPS sessions and shared between users of your app.

In order for two devices to share wayspot anchor data asynchronously, you need to store your wayspot anchors on a remote server somewhere which you can do by using the anchor’s Serialize() and Deserialize() methods to turn them into a string that can be sent to a server for storage & retrieval for future use.
Please refer to this link for more information.

Also, the “localization” which you mentioned is from the Pong LLAPI example is different than VPS localization, and those two are exclusive methods of localization.
For more information on that, you can check out Localizing with VPS documentation.

Hope this helps to find answers to your questions.

1 Like