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.
On this page
- Local, persistent and shared anchors defined
- Why resolving fails and how to design around it
- Anchor persistence and sharing by platform
- Placing and resolving shared content, message by message
- Anchor graphs, coordinate transforms and the anchor record
- Choosing a cross-platform sharing strategy
- Failure modes in shared spatial systems and their controls
- Questions and answers
- Sources
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.
| Option | Where map data lives | How sharing works | Persistence and lifetime |
|---|---|---|---|
| ARKit world map (iOS, iPadOS) | On the device; the app can save the map | The app transfers the saved map to other devices itself2 | As long as the app keeps the map and the space still matches |
| visionOS world anchors | On the device, managed by the system | Shared world anchors reach nearby participants while SharePlay is active3 | Regular world anchors persist; shared ones end when sharing ends3 |
| ARCore Cloud Anchors | Hosted through Google's ARCore API | Android and iOS users can take part in the same experience4 | One day to a year, set at hosting; longer than a day needs keyless authorization5 |
| Meta shared spatial anchors | Meta's platform services | Shared to a group ID, with colocation discovery for nearby headsets6 | Check Meta's current documentation for retention |
| OpenXR spatial entity extensions | Up to each runtime that implements them | The published set covers anchors and persistence, not sharing7 | Persistence scope depends on the runtime |
| Azure Spatial Anchors | Hosted by Microsoft until retirement | Was a cross-platform service | Retired on November 20, 20248 |
Platform features and lifetimes change between releases. Treat this as a starting point for your own verification, not a specification.
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.
ThenUse 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.
ThenUse 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.
ThenEstablish 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.
ThenEvaluate 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.
ThenPrefer 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.
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
- Cloud Anchors developer guide for Android — Google ARCore · checked 10 October 2026
- ARWorldMap — Apple Developer · checked 10 October 2026
- Share visionOS experiences with nearby people (WWDC25) — Apple Developer · checked 10 October 2026
- ARCore Cloud Anchors overview — Google ARCore · checked 10 October 2026
- ARCore Cloud Anchors with persistent Cloud Anchors — Google Codelabs · checked 10 October 2026
- Colocation Discovery and Group Sharing for shared spatial anchors — Meta for Developers · checked 10 October 2026
- OpenXR Spatial Entities Extensions Released for Developer Feedback — The Khronos Group · checked 10 October 2026
- Ending Support in 2024 — Microsoft Lifecycle · checked 10 October 2026
- Spatial Computing: ColdAI's approach to spatial applications and data — ColdAI
- Geospatial API overview — Google ARCore · checked 10 October 2026