ArchitectureSpatial Computing

Persistent, shared spatial anchors: platform options and reference architecture

Shared spatial anchors let content placed by one person reappear in the same physical spot for other people, devices and sessions. Each platform persists and shares anchors differently, and cross-platform sharing usually needs a cloud anchor service, a visual positioning system or a common reference such as a marker. This page compares the options and sets out an architecture for storing anchors alongside content and permissions.

Reviewed 8 min read

On this page
  1. Local, persistent and shared anchors defined
  2. Why resolving fails and how to design around it
  3. Anchor persistence and sharing by platform
  4. Placing and resolving shared content, message by message
  5. Anchor graphs, coordinate transforms and the anchor record
  6. Choosing a cross-platform sharing strategy
  7. Failure modes in shared spatial systems and their controls
  8. Questions and answers
  9. Sources

Local, persistent and shared anchors defined

Local anchor
A pose the device tracks during one session. It disappears when the app closes.
Persistent anchor
An anchor saved with enough map data for the same device to find it again in a later session.
Shared anchor
An anchor other devices can recover, through a cloud service, an exchange of map data between devices or a common physical reference.
Resolving
Matching what the camera sees now against stored map data to recover an anchor's pose in the current session.
Visual positioning system
A service that locates a device by matching camera images against a prebuilt map of an area, instead of a map made by the app's own users.
Anchor graph
A set of anchors linked by known relative transforms, so content can be placed from whichever anchor resolves.

Why resolving fails and how to design around it

Resolving an anchor means recognizing the place, and places change. Furniture moves, pallets come and go, doors open, lighting shifts between day and night. A map captured in one state may not match the next. Plain walls, glass, polished floors and repetitive structures such as racking give the device few distinctive features to match against.

Hosting quality matters as much as resolving. Google's guidance for ARCore Cloud Anchors is to check feature map quality before hosting, view the area from several angles, use well-lit scenes and avoid reflective or featureless surfaces1. Give users the same coaching in your app: a short guided scan when content is placed saves many failed resolves later.

Plan for failure from the start. Show a clear state while the app searches, let users fall back to a marker or a manual alignment step, and refresh anchors when the environment has changed enough that resolves keep failing.

Anchor persistence and sharing by platform

Each row reflects the vendor documentation cited in its cells. Check it again before you commit an architecture to any one option.

OptionWhere map data livesHow sharing worksPersistence and lifetime
ARKit world map (iOS, iPadOS)On the device; the app can save the mapThe app transfers the saved map to other devices itself2As long as the app keeps the map and the space still matches
visionOS world anchorsOn the device, managed by the systemShared world anchors reach nearby participants while SharePlay is active3Regular world anchors persist; shared ones end when sharing ends3
ARCore Cloud AnchorsHosted through Google's ARCore APIAndroid and iOS users can take part in the same experience4One day to a year, set at hosting; longer than a day needs keyless authorization5
Meta shared spatial anchorsMeta's platform servicesShared to a group ID, with colocation discovery for nearby headsets6Check Meta's current documentation for retention
OpenXR spatial entity extensionsUp to each runtime that implements themThe published set covers anchors and persistence, not sharing7Persistence scope depends on the runtime
Azure Spatial AnchorsHosted by Microsoft until retirementWas a cross-platform serviceRetired on November 20, 20248

Platform features and lifetimes change between releases. Treat this as a starting point for your own verification, not a specification.

Placing and resolving shared content, message by message

host anchoranchor IDsave content + IDcontent for this area?check accessallowed itemsitems + anchor IDsresolve IDsanchor posesrender in place01Author's device02Anchor service03Content service04Permissions05Viewer's device
  1. Author's device

    Places content and hosts an anchor for it.

  2. Anchor service

    A platform cloud service, a positioning system or your own relocalization service.

  3. Content service

    Stores content items with anchor IDs, transforms and versions.

  4. Permissions

    Decides who may see, edit or remove content in each area.

  5. Viewer's device

    Requests nearby content, resolves anchors and renders in place.

  1. Author's device to Anchor servicehost anchor
  2. Anchor service to Author's deviceanchor ID
  3. Author's device to Content servicesave content + ID
  4. Viewer's device to Content servicecontent for this area?
  5. Content service to Permissionscheck access
  6. Permissions to Content serviceallowed items
  7. Content service to Viewer's deviceitems + anchor IDs
  8. Viewer's device to Anchor serviceresolve IDs
  9. Anchor service to Viewer's deviceanchor poses
  10. Viewer's device to Viewer's devicerender in place
Conceptual sequence for a multi-user spatial app with separate anchor and content services; it does not represent any specific vendor's API.

Anchor graphs, coordinate transforms and the anchor record

Do not give every piece of content its own anchor, and do not hang a whole building off one. A practical pattern is an anchor graph: a few well-mapped anchors per area, content stored as a transform relative to the nearest one, and the transforms between anchors recorded too. If one anchor fails to resolve, content can be placed from a neighbor; when several resolve, the app can compare them and correct drift.

Where BIM or CAD data exists, add a site coordinate frame to the graph. Linking anchors to surveyed points lets content authored against the model appear in the right place, which is where persistence meets the BIM to headset workflow.

Keep the anchor record in your own service, not only in the platform's: anchor ID and provider, site and area, the transform to its parent frame, creation date and expiry, map quality at hosting, the creator and an access policy. Content items then reference an anchor ID plus a relative transform, with their own version history. That separation lets you re-host anchors, change provider or re-map a room without touching content. Deciding who may create, see and remove spatial content, and where that data is stored, is part of ColdAI's spatial computing design work9.

Choosing a cross-platform sharing strategy

  • If

    Every user is on the same platform, in the same room, at the same time.

    Then

    Use that platform's own colocation or shared-anchor feature.

    It is the least work and needs no separate service, though it ties the app to one platform.

  • If

    Users carry a mix of iOS and Android phones and content must last for weeks or months.

    Then

    Use a cloud anchor service that supports both, with the authorization mode that allows longer lifetimes.

    Cross-platform resolving is built in, and lifetimes can be set to match the content.

  • If

    Headsets from different vendors and phones must share one space.

    Then

    Establish a common reference such as a marker or surveyed points, keep your own anchor graph and use each platform's local anchors underneath.

    No single anchor service resolves everywhere, but a shared reference frame does.

  • If

    Content sits outdoors in streets or public spaces.

    Then

    Evaluate a visual positioning system such as Google's Geospatial API, which builds its localization model from Street View imagery10.

    Users do not have to map the area first, and coverage follows the provider's imagery.

  • If

    The site is sensitive and scans must not leave it.

    Then

    Prefer on-device persistence and marker-based alignment, or run your own relocalization service on site.

    Cloud anchor services upload visual data in order to host anchors, even when they discard it afterwards1.

Failure modes in shared spatial systems and their controls

Room scans expose sensitive layouts

Early signalPoint clouds and meshes of secure areas sit in cloud storage with no named owner.

MitigationClassify spatial maps as sensitive, upload only what the feature needs, set retention and deletion rules and restrict who can export them.

Anchors and content fall out of step

Early signalUsers see orphaned labels, or content silently vanishes when an anchor's lifetime ends.

MitigationStore expiry with each anchor record, re-host before it lapses and delete anchors when their content is retired.

The anchor provider retires the service

Early signalA deprecation notice appears or the roadmap goes quiet.

MitigationKeep anchor records and content in your own service so they can be re-hosted elsewhere; Azure Spatial Anchors users had to make exactly this move8.

Location becomes a permission bypass

Early signalUsers find content they should not see simply by walking into the space.

MitigationCheck access in the content service before returning anchor IDs, never on the device alone.

Users silently disagree on positions

Early signalTwo people point at the same virtual object and see it in different places.

MitigationShow a shared reference point for a quick visual check, and re-resolve when users report a mismatch.

Questions and answers

How long do cloud anchors last?

It depends on the service and how you authenticate. ARCore Cloud Anchors can be set to resolve for anywhere from one day to a year, but anything longer than a day requires keyless authorization rather than an API key5. Other platforms set their own retention rules. Whatever the service, store each anchor's expiry in your own records and re-host before it lapses.

Can iOS and Android devices share the same spatial anchors?

Yes, through a service that supports both. ARCore Cloud Anchors are designed so that Android and iOS users can take part in the same experience. Apple's own world maps and world anchors cannot be resolved on Android, so mixed fleets either use a cross-platform cloud service or a common reference such as a marker, with each device's local anchors underneath.

What happens to shared anchors when a room is rearranged?

Resolves get slower or fail, because the stored map no longer matches what the camera sees. Small changes are usually tolerated; moving large furniture, racking or partitions often is not. Detect repeated failures, prompt an authorized user to re-scan and re-host the area, and keep content attached to your own anchor records so it can be re-bound without being recreated.

Are room scans and point clouds personal data?

They can be. A scan of a home, or a workplace scan that captures people, documents or screens, can reveal information about identifiable individuals, and some maps are commercially sensitive even when nobody appears in them. Treat them like camera footage: collect only what the feature needs, say what is stored and for how long, restrict access and delete on schedule. Ask your data protection officer about your specific case.

What are the alternatives now that Azure Spatial Anchors is retired?

Microsoft retired Azure Spatial Anchors on November 20, 20248. The remaining options are platform-native anchors where every user shares one platform, ARCore Cloud Anchors for mixed iOS and Android phone apps, and architectures that keep anchor records in your own service and align devices to a common reference such as markers or surveyed points.

Sources

  1. Cloud Anchors developer guide for Android — Google ARCore · checked 10 October 2026
  2. ARWorldMap — Apple Developer · checked 10 October 2026
  3. Share visionOS experiences with nearby people (WWDC25) — Apple Developer · checked 10 October 2026
  4. ARCore Cloud Anchors overview — Google ARCore · checked 10 October 2026
  5. ARCore Cloud Anchors with persistent Cloud Anchors — Google Codelabs · checked 10 October 2026
  6. Colocation Discovery and Group Sharing for shared spatial anchors — Meta for Developers · checked 10 October 2026
  7. OpenXR Spatial Entities Extensions Released for Developer Feedback — The Khronos Group · checked 10 October 2026
  8. Ending Support in 2024 — Microsoft Lifecycle · checked 10 October 2026
  9. Spatial Computing: ColdAI's approach to spatial applications and data — ColdAI
  10. Geospatial API overview — Google ARCore · checked 10 October 2026

More in Spatial Computing

Back to Spatial Computing

Next step

Review your anchor architecture before content piles up

Send the devices your users carry, where the content lives and how long it must stay in place, and we can sketch an anchor and content model that survives platform changes.

Discuss an anchor architecture