Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
(Redirected from Spatial Anchor)

Spatial anchors are persistent reference points in the real world that augmented reality (AR) and mixed reality (MR) systems use to lock virtual objects to a fixed location in physical space. Microsoft describes a spatial anchor as "an important point in the world that the system tracks over time", with its own adjustable coordinate system that keeps anchored holograms in place.[1] Meta's developer documentation calls an anchor "a world-locked frame of reference that gives a position and orientation to a virtual object in the real world",[2] and Magic Leap defines it as "a shared reference point for tethering virtual content to a persistent physical location".[3] An anchor stores a full six-degrees-of-freedom pose, three coordinates of position and three of orientation, so content attached to it keeps both its place and its facing direction.[4][5]

Anchors are needed because a tracking system's model of the world keeps changing. As an AR device observes more of a room, it refines its estimate of where surfaces and its own camera are, and the numerical coordinates of the camera and of placed objects can shift as a result.[5] A virtual object stored only at fixed world coordinates would then appear to slide away from where it was put, an error known as drift. An anchor holds a pose relative to the tracked environment, and the runtime moves the anchor (and everything attached to it) whenever its understanding of the scene improves, so the content stays visually pinned to the same real-world spot.[6][1]

Spatial anchors support three capabilities in AR and MR applications: stability (content stays fixed in place), persistence (content can be saved and found again in a later session) and sharing (several devices align to one common reference so that people in the same space see content in the same real-world position).[1][2] Most major platforms expose the concept, including Apple's ARKit and visionOS, Google's ARCore and Android XR, Meta's SDKs for Meta Quest headsets, Magic Leap 2, Microsoft's Windows Mixed Reality for HoloLens, and the OpenXR standard. Microsoft's cross-platform cloud service, Azure Spatial Anchors, ran from 2019 until its retirement on 20 November 2024.[7][8]

Reviewed 13 October 2026. Merged from "Spatial anchor"; checked platform behaviour, limits and status (Apple, Google, Meta, Microsoft, Magic Leap, Khronos, Unity, Niantic Spatial docs and announcements), dated history claims against the cited press and newsroom sources, and paper authors, venues and findings via Crossref, abstracts and full texts. About review dates.

Definition and core principles

World-locking and coordinate systems

Each spatial anchor has its own coordinate system, defined relative to the physical environment. Rendering a hologram in its anchor's coordinate system gives the most precise positioning for that hologram at any given time. Microsoft notes that this precision comes "at the cost of small adjustments over time to the hologram's position as the system continually moves it back into place based on the real world".[1] Content that stays put in the world as the user walks around is called world-locked content.[9]

Microsoft's design guidance explains why a single rigid coordinate system breaks down at larger scales. An untethered device such as HoloLens keeps adjusting its knowledge of the user's surroundings as they walk across a building. Its example: the headset may first believe two locations to be 4 meters apart and later learn that they are 3.9 meters apart. If two holograms had been placed 4 meters apart in one rigid coordinate system, one of them would then always appear 0.1 meters off from the real world. Spatial anchors avoid this because each anchor can adjust its position relative to the others, so that each one stays where it was placed. As a consequence, holograms attached to different anchors may drift slightly relative to each other.[9] According to the same guidance, a single coordinate system (such as a stationary or stage frame of reference) can only stabilize content within about 5 meters before lever-arm effects become noticeable; experiences larger than that need spatial anchors.[9]

In ARCore, Google tells developers that "as ARCore's understanding of the environment changes, it adjusts its model of the world to keep things consistent", which can change the numerical location of the camera and anchors significantly. ARCore therefore treats each frame as having its own world coordinate space and recommends creating an anchor, or using a position relative to a nearby anchor, for any position that must persist beyond a single frame.[5] An ARCore pose is a rigid transformation from an object's local coordinate space to world space, equivalent to an OpenGL model matrix.[5] Apple's ARKit stores an anchor's position and orientation as a 4x4 transform matrix, and each anchor in an ARKit session defines its own local coordinate system. Anchors sit on top of ARKit's world tracking, which follows the device with six degrees of freedom (roll, pitch and yaw plus movement along x, y and z) so that a virtual object can appear to stay in the same place relative to the real world while the user tilts the device or walks around the object.[10][4][11]

Feature-based tracking

Markerless spatial anchors rest on visual feature points: distinctive image locations such as corners, blobs and T-junctions that the tracking system can recognize again from frame to frame. In an explainer on AR anchors, Andreas Jakl notes that detected planes are themselves groups of feature points, so anchoring "all comes down to feature points", and that plain surfaces such as white walls or sky produce few or no keypoints.[12] Jakl names SIFT (David Lowe, 2004), SURF, FAST and BRISK among the detector families used for this task, noting that SIFT and SURF are usually too slow for real-time mobile use.[12] ORB-SLAM, a real-time monocular system published by Raul Mur-Artal, J. M. M. Montiel and Juan D. Tardos in 2015, uses the same ORB features for all of its SLAM tasks: tracking, mapping, relocalization and loop closing.[13]

Apple's documentation describes the same principle for ARKit: it "recognizes notable features in the scene image, tracks differences in the positions of those features across video frames, and compares that information with motion sensing data". Adding an anchor tells ARKit which area matters, and ARKit then optimizes world-tracking accuracy around that anchor so that virtual objects appear to stay in place.[11][4] For cloud anchors, ARCore builds "a 3D feature map of the space surrounding that anchor" and uploads data derived from it, and a resolving device compares visual features from its own camera view with that stored map.[14]

Geospatial anchoring

Spatial anchors can also be defined in global coordinates. ARCore's Geospatial API, announced by Google in May 2022, lets developers anchor content by latitude, longitude and altitude without first scanning the space. It is based on Google's Visual Positioning Service (VPS), which draws on "tens of billions of images in Street View", and at launch Google said it worked in "over 87 countries".[15] Apple's equivalent, the ARGeoAnchor class (also called a location anchor), arrived with ARKit 4 and iOS 14 in 2020. It uses localization imagery from Apple Maps, is aligned to an East-North-Up orientation, and works only in geotracking sessions in supported areas. If an app creates a location anchor without an altitude, ARKit places it at ground level and may query a server for the local topography; an anchor can fail to appear when the network is unavailable, and because the framework downloads localization imagery as the user moves, Apple suggests telling users about the data usage.[16][17] Niantic's VPS offers a similar service for locations that players and developers have scanned; in November 2024 Niantic reported 10 million scanned locations, "over 1 million" of them activated for VPS, with localization at "centimeter-level accuracy".[18]

Relationship to spatial mapping

Spatial anchors are distinct from, but depend on, spatial mapping, the process by which a device builds a model of the surrounding surfaces. Mapping (and the underlying SLAM tracking) produces the environment representation that an anchor's pose is expressed against and that a device matches when it relocalizes to recover an anchor. An anchor is a single reference point within that map, whereas spatial mapping is the broader reconstruction of room geometry used for placement, physics and occlusion.[6][9] On HoloLens, for example, an app can intersect the user's gaze ray with the spatial mapping mesh to find where to place a hologram, then create a spatial anchor at that intersection point.[1]

Technical implementation

Visual-inertial odometry

Spatial anchors are implemented on top of a device's environmental tracking. Modern AR systems achieve this tracking with visual-inertial odometry (VIO), which combines camera images with readings from an inertial measurement unit (accelerometers and gyroscopes). Apple's documentation states that ARKit uses visual-inertial odometry, combining "information from the iOS device's motion sensing hardware with computer vision analysis of the scene visible to the device's camera".[11] Google's ARCore uses the same approach: its launch announcement in 2017 described motion tracking that determines the phone's position and orientation from the camera and IMU data.[19]

The two sensor types complement each other. In a 2017 paper on monocular visual-inertial SLAM for mobile AR, Jin-Chun Piao and Shin-Dug Kim note that when the camera moves quickly, the image blurs so that feature points cannot be extracted or the camera position cannot be tracked, whereas the IMU remains accurate during rapid camera movement; VIO combines the two to obtain complementary results. Their tests used the EuRoC dataset (camera images at 20 frames per second, IMU data at 200 Hz) and a Nexus 6 smartphone (15 frames per second, 100 Hz IMU data).[20] Widely cited VIO estimators include the Multi-State Constraint Kalman Filter by Anastasios Mourikis and Stergios Roumeliotis (ICRA 2007) and VINS-Mono by Tong Qin, Peiliang Li and Shaojie Shen (IEEE Transactions on Robotics, 2018).[21][22]

Depth sensing

Depth sensors give the tracking system direct geometric information that a single camera cannot provide. The Microsoft HoloLens 2 implements its visual-inertial SLAM and spatial mapping using data from visible-light and depth cameras.[23][24] On phones and tablets, ARKit 4 (2020) introduced a Depth API for devices with Apple's LiDAR Scanner; combined with 3D mesh data, it improves occlusion of virtual objects and allows near-instant placement of objects in the user's surroundings.[17] Google's earlier Tango platform relied on extra camera hardware to build 3D meshes of spaces, an approach Google abandoned in favor of the camera-and-IMU tracking of ARCore.[25][19]

Usage guidelines

Platform vendors give similar advice on how to use anchors. Once an anchor is placed, it cannot be moved; for content that should follow the user, or a highly dynamic hologram such as a character walking around a room, Microsoft recommends rendering in a stationary or attached frame of reference instead.[1] ARKit's documentation likewise says that if a virtual object moves, the app should remove the anchor at the old position and add one at the new position.[4]

Anchors cost processing time. Google advises using only the anchors an app needs, because each one adds CPU cost, and reusing one anchor for several nearby objects.[6] Unity's AR Foundation documentation states that "too many anchors can drag down your app's framerate" and recommends avoiding "multiple anchors within a couple meters of each other".[26] Microsoft recommends releasing local anchors that are no longer needed, since the system keeps the sensor data near an active anchor, and persisting only those anchors the app must find again.[1]

Each vendor also gives a working radius around an anchor:

Recommended distance between an anchor and its content
Platform Guidance
Windows Mixed Reality / HoloLens Render anchored holograms within 3 meters of their anchor; beyond that, lever-arm effects cause "noticeable positional errors in proportion to their distance from that origin"[1]
ARCore Avoid placing objects farther than 8 meters from their anchor; create a new anchor closer to distant content[6]
Meta Quest Create or reuse a spatial anchor within three meters of the object it anchors; perception can vary over 10 meters, influenced by conditions such as lighting[27]
XREAL NRSDK Keep anchored objects between 0.5 and 3 meters away; avoid attaching objects more than 3 meters from an anchor[28]

Microsoft's guidance explains the reasoning behind the 3 meter rule. Angular error near an anchor is small, so a distant hologram looks stable while the user stands near the anchor; once the user walks up to the distant hologram, the error from the faraway anchor becomes obvious. Holograms that must keep fixed relationships to one another (for example the parts of a holographic solar system) should share a single anchor.[1]

History and development

Academic foundations

The tracking methods behind spatial anchors come from robotics and computer vision research. Estimating a vehicle's motion from camera images alone was described by Hans Moravec in the early 1980s, in work on a planetary rover that used a single camera sliding on a rail; most early visual odometry research was motivated by NASA's Mars exploration program. The term "visual odometry" was coined by David Nistér in 2004, according to the tutorial by Davide Scaramuzza and Friedrich Fraundorfer.[29][30]

According to Hugh Durrant-Whyte and Tim Bailey, the probabilistic SLAM problem originated at the 1986 IEEE Robotics and Automation Conference in San Francisco, and the structure of the problem, its convergence result and the acronym "SLAM" were first presented in a survey paper at the 1995 International Symposium on Robotics Research.[31] For AR, the central problem was registration. Ronald Azuma's 1997 survey in Presence: Teleoperators and Virtual Environments described AR as integrating 3D virtual objects into a 3D real environment in real time, and identified registration and sensing errors as "two of the biggest problems in building effective Augmented Reality systems".[32]

From marker-based to markerless tracking

Early AR relied on fiducial markers, printed patterns placed in the environment that the software could recognize and use as stable reference points. ARToolKit, developed in 1999 by Hirokazu Kato and Mark Billinghurst at the University of Washington's Human Interface Technology Laboratory, tracked square markers in camera video and drew 3D graphics registered to them; its method was described in their 1999 IWAR paper on marker tracking and HMD calibration.[33][34] This approach worked reliably but limited AR to places where markers had been set up in advance.

Markerless tracking removed that restriction by letting the system recognize the natural geometry and visual features of the environment. Two 2007 papers were important steps: MonoSLAM by Andrew Davison, Ian Reid, Nicholas Molton and Olivier Stasse recovered the 3D trajectory of a single camera moving through a previously unknown scene at 30 Hz, and its authors demonstrated live augmented reality with a hand-held camera, and PTAM (Parallel Tracking and Mapping) by Georg Klein and David Murray, presented at the ISMAR symposium, estimated the pose of a hand-held camera in an unknown scene for small AR workspaces, splitting tracking and mapping into two parallel threads.[35][36] A 2016 survey by Cesar Cadena and colleagues reviews the state of SLAM after some 30 years of research, including robustness and scalability in long-term mapping.[37]

Google Tango and ARCore (2016-2018)

Google's Tango platform brought markerless AR tracking and 3D mapping to consumer phones, but it relied on extra camera hardware. Lenovo announced the Phab 2 Pro as the first Tango smartphone at its Tech World conference in San Francisco on 9 June 2016, at US$499 unlocked,[38] and it went on sale in the United States on 1 November 2016 at US$499.99 unlocked.[39] Asus followed with the ZenFone AR.[25]

On 29 August 2017 Google announced ARCore, which built on the work done with Tango but required no additional hardware. The preview ran on the Pixel and Samsung Galaxy S8, and Google aimed for 100 million devices by the end of the preview period.[19] On 15 December 2017 Google announced that Tango support would end on 1 March 2018.[25] ARCore 1.0 was launched at Mobile World Congress on 23 February 2018, when Google said it worked on 100 million Android smartphones across 13 supported models.[40] Google introduced the Cloud Anchors API later in 2018, letting people on different devices view and share the same AR content in real-world spaces.[41]

Apple ARKit (2017-present)

Apple announced ARKit at its Worldwide Developers Conference in June 2017 as part of iOS 11; Senior Vice President Craig Federighi said it would be the "largest AR platform in the world", a claim Engadget tied to the large number of iPhones and iPads already in use.[42] The base ARAnchor class dates from iOS 11.0.[4] Later releases added the features that matter most for anchoring:

ARKit releases relevant to spatial anchors
Release Date or version Anchor-related changes
ARKit 1.5 (iOS 11.3) 29 March 2018 Detection of vertical surfaces such as walls and doors; recognition of 2D images such as posters and artwork; 50 percent higher camera resolution with auto-focus[43]
ARKit 2 (iOS 12) Announced 4 June 2018 Persistent AR (virtual objects left in a real-world place that users can return to), shared experiences for several users, 3D object detection; ARWorldMap introduced in iOS 12[44][45]
iOS 13 With iOS 13 ARParticipantAnchor reports the position of other users in collaborative sessions[46]
ARKit 4 (iOS 14) Announced 22 June 2020 Location Anchors (ARGeoAnchor) using Apple Maps data; Depth API for LiDAR-equipped iPad Pro[17][16]
visionOS 1.0 First visionOS release WorldAnchor for Apple Vision Pro; ARKit persists world anchor IDs and transforms across runs of an app[47]
visionOS 26 With visionOS 26 World anchors can be shared with nearby participants in a SharePlay session[48]

Cloud anchor services (2018-2024)

Cross-device anchors became a cloud service category in 2018 and 2019. Google's Cloud Anchors API arrived in 2018,[41] and Microsoft announced Azure Spatial Anchors as a public preview on 25 February 2019. Microsoft described it as a mixed reality service that provides a "common coordinate frame for shared mixed reality experiences across HoloLens, iOS, and Android devices".[7] In October 2020 Google launched persistent Cloud Anchors with ARCore 1.20, available to Android, iOS and Unity developers, so that people could return to shared AR content "again and again".[41][49]

Meta introduced Spatial Anchors, part of its Presence Platform, for Quest headsets as an experimental feature in the v35 SDK on 7 December 2021, first for OpenXR and Unity developers.[50] Shared Spatial Anchors followed on 15 December 2022 for co-located multiplayer, initially on Meta Quest Pro; an update dated 7 February 2023 extended support to Meta Quest 2 and PC Link starting with Platform SDK v49.[51]

In November 2023 a Microsoft answer on its Q&A site confirmed that Azure Spatial Anchors would be retired on 20 November 2024, without naming a direct replacement; as MIXED reported, existing subscribers could keep using the service until then but were advised to stop using it and delete their accounts by that date.[52][53] Microsoft's lifecycle list confirms the 20 November 2024 retirement, and lists the related Azure Object Anchors service as retired on 20 May 2024.[8]

Standardization (2025-present)

On 10 June 2025 the Khronos OpenXR Working Group released a family of cross-vendor spatial entity extensions as part of OpenXR 1.1, including XR_EXT_spatial_anchor for positioning virtual content relative to real-world locations and XR_EXT_spatial_persistence for keeping spatial context across sessions. Khronos named PICO as a co-designer and early runtime implementer, and said Google planned to bring the extensions to Android XR, Meta planned to support them and Unity planned to integrate them with AR Foundation.[54] Vendor-specific anchor persistence extensions are being folded into this family; the OpenXR registry marks the Android vendor extension XR_ANDROID_device_anchor_persistence as deprecated by XR_EXT_spatial_persistence and XR_EXT_spatial_persistence_operations.[55]

Persistence and sharing

Two capabilities are built on top of anchors: persistence, where content reappears in the same physical spot across separate runs of an app, and sharing (colocation), where several devices in the same space align to one common reference so each user sees the content in the same real-world position.[1][51] A user could place a virtual whiteboard beside a desk and find it in the same spot on returning, an example Meta gave when it launched its anchors.[50]

Local persistence

On HoloLens, apps save anchors to disk and load them later through the spatial anchor store, using a string key that works like a filename; Microsoft notes that persisted anchors let users find holograms where they expect them "over many uses of your app".[9] In Unity this is done through the WorldAnchorStore in older projects or the XRAnchorStore with the Mixed Reality OpenXR Plugin; in both cases anchors are saved and loaded on the same device. Microsoft also notes that saved anchors are an ideal fallback when there is no internet connection.[56]

ARKit serializes the session's map and its anchors into an ARWorldMap (iOS 12 and later). The world map holds ARKit's awareness of the physical space and any anchors added to the session; an app can save it with NSKeyedArchiver when it quits and, the next time it launches in the same physical environment, restore the same virtual content at the same positions.[45] Apple's sample code shows the app's camera snapshot from the moment of saving so that the user can match the view while ARKit tries to relocalize.[57] On visionOS, persistence is automatic: ARKit stores only each world anchor's UUID and its pose in a particular space, and the app is responsible for remembering what each anchor means.[58]

Cloud-based sharing

To share anchors across devices, an app uploads anchor data to a service and passes an identifier to other devices, which then resolve the anchor by matching their own camera view against the stored data. With ARCore's Cloud Anchors, the device maps the area around the anchor, uploads the anchor's data to the ARCore API cloud endpoint, and receives an ID; other users' devices send that ID and have ARCore compare visual features from their scene with the stored map. Both Android and iOS users can join the same experience, the Cloud Anchor API works on all ARCore-supported devices, and it requires a working internet connection.[14] Google states that "visual data uploaded to the cloud when hosting an anchor is discarded within 24 hours", and that previously uploaded data is never sent to a user's device.[59]

Before ARCore 1.20, Cloud Anchors were good for a single session.[49] Since persistent Cloud Anchors, an anchor's time to live is set when it is hosted: up to 1 day when the app authenticates with an API key, and up to 365 days with keyless or token authorization.[60][59]

Microsoft's Azure Spatial Anchors served the same purpose across HoloLens, iOS and Android until its 2024 retirement. Microsoft promoted it as working "without any environmental setup needed", in contrast to earlier approaches that required QR codes or complex coding.[7]

Meta's Shared Spatial Anchors store an anchor and its point cloud on Meta's servers, grant other users access, and let their headsets download the anchor and locate its 6DoF pose relative to themselves.[51] Meta's troubleshooting guide notes that anchors uploaded to the cloud have a time to live, after which they are erased from the cloud.[61]

Not every system routes anchor data through a vendor cloud. ARKit can send an archived ARWorldMap to a nearby device with any networking technology, for example MultipeerConnectivity, so that both devices track the same map and see the same content.[45][62] HoloLens apps built with older Unity versions could export an anchor on one device and import it on another through a WorldAnchorTransferBatch; Unity's documentation notes that the feature does not include the transport layer, which the app must provide.[63] In visionOS 26, Apple added world anchors marked for sharing with nearby participants in a SharePlay session; these shared anchors are not persisted and last only as long as the SharePlay session.[48]

Geospatial and location-based anchors

ARCore's Geospatial API offers three kinds of global anchor. WGS84 anchors place content at a given latitude, longitude and altitude. Terrain anchors take only latitude and longitude, with height set relative to the terrain at that position. Rooftop anchors place content relative to a building's rooftop, as known from Google's Streetscape Geometry data, and fall back to terrain altitude when not placed on a building.[64] Google introduced Rooftop anchors and the Streetscape Geometry API, which provides a 3D mesh within a 100 m radius of the device, in May 2023, after adding Terrain anchors during the preceding year; the same announcement introduced Geospatial Creator in Adobe Aero and Unity for authoring geospatial content.[65] Together these let developers build an AR cloud style layer of content tied to real places that any user with the app can find.

Support in major AR frameworks

Apple ARKit and visionOS

ARKit represents anchors with the ARAnchor class, which Apple describes as "an object that specifies the position and orientation of an item in the physical environment". Core properties include transform, name and a unique identifier; anchors are considered equal based on their identifier.[4] Ten specialized subclasses inherit from it: ARPlaneAnchor, ARImageAnchor, ARObjectAnchor, ARFaceAnchor, ARBodyAnchor, ARMeshAnchor, ARParticipantAnchor, AREnvironmentProbeAnchor, ARGeoAnchor and ARAppClipCodeAnchor. Some ARKit features add such anchors automatically, for example plane, object and image anchors in world-tracking sessions and face anchors in face-tracking sessions, and developers can also subclass ARAnchor to attach custom data that is saved and loaded with a world map.[4]

Apple's documented approach to multi-user ARKit experiences is to share a world map between devices or, from iOS 13, to use collaborative sessions in which ARKit reports other users through ARParticipantAnchor.[62][46] On Apple Vision Pro, apps use a WorldTrackingProvider in an ARKit session to track WorldAnchor objects; ARKit automatically places an app's anchors back in the space when the person returns to the same location, and only reports anchors for nearby places as the person moves between rooms or towns. If the person repositions the current space, for example by holding down the Digital Crown, world anchors keep reporting positions relative to the new world origin.[58][47]

Google ARCore

ARCore distinguishes anchors by scope. Local anchors are stored with the app and valid only for that instance of the app; cloud anchors are stored in Google Cloud and can be shared between app instances; and geospatial anchors are based on latitude, longitude, altitude and VPS data, so they can be placed from a remote location when VPS is available.[6] Before hosting, an app can call estimateFeatureMapQualityForHosting(), which rates the feature map for a given camera pose as INSUFFICIENT, SUFFICIENT or GOOD. Up to 40 concurrent Cloud Anchor operations can exist at a time, and the API allows 30 host requests and 300 resolve requests per minute per IP address and project, with no limit on the number of anchors per project.[59] Google's documentation adds that the older Cloud Anchor API endpoint is no longer supported after 31 August 2023.[14] Because "ARCore does not release Trackables that have attached anchors", Google also tells developers to detach anchors they no longer need.[6]

Android XR

On Android XR headsets and wired XR glasses, ARCore for Jetpack XR creates anchors from a pose, either relative to a trackable such as a plane (the anchor then follows that trackable) or fixed in the world. Google describes an anchor as "a location and orientation in the real world" and notes that attaching objects to anchors also saves power because the app does not have to run placement logic every frame. Anchor persistence must be enabled in the session configuration: persist() returns a UUID that a later session can pass to Anchor.load(), and unpersist() removes it from the app's storage. Creating, loading and persisting anchors requires the SCENE_UNDERSTANDING_COARSE runtime permission.[66]

Microsoft Windows Mixed Reality

On HoloLens and other Windows Mixed Reality devices, spatial anchors are supported on HoloLens (1st gen), HoloLens 2 and immersive headsets, and they are the basis of "world-scale" experiences in which users roam beyond 5 meters. Microsoft's design model ranks experiences by scale, from orientation-only (such as a 360-degree video viewer) through seated, standing and room scale to world scale; only world-scale experiences require spatial anchors, typically together with spatial mapping.[9] Microsoft recommends creating a new local anchor for each hologram a user explicitly places, because local anchors are "easy and performant to create" and the system combines internal data when anchors can share sensor data.[1] For Unity apps, Microsoft's recommended approach is World Locking Tools, which stabilizes one rigid coordinate system using an internal pool of spatial anchors and corrects the head's coordinates instead of moving every object; World Locking Tools supports local anchor persistence only on HoloLens devices.[56]

Meta Quest

Meta's SDKs distinguish app-created spatial anchors from Scene anchors, which are created and owned by the system; apps cannot modify Scene anchors but can access them with user permission. Spatial anchors can be created and tracked, saved and erased, discovered in later sessions, and shared; anchors have "an abstraction between local device storage and storage on Meta Servers".[2] In Unity, SaveAnchorAsync persists an anchor, loading works in three steps (load unbound anchors by UUID, localize them, then bind each to an OVRSpatialAnchor), and EraseAnchorAsync removes it from persistent storage; destroying an anchor object only destroys the runtime instance.[67] Meta states that there is no maximum number of spatial anchors an app can create.[27]

Shared Spatial Anchors offer two sharing models. Group-based sharing, which Meta calls the recommended approach, shares and loads anchors with an arbitrary group UUID; user-based sharing targets specific Oculus user IDs and needs extra permissions. All users must have Enhanced Spatial Services enabled, or sharing fails. Sharing an anchor means sharing its point cloud data with the specified users or group. During development, shared anchors work only for members of a verified developer team, test users, or users invited to a non-live release channel. Meta's documentation lists Meta Quest 2, Quest Pro, Meta Quest 3, Meta Quest 3S and Meta VR Glasses with Meta XR Core SDK v71 or later, and from v74 a Colocation building block uses Meta's Colocation Discovery and group sharing APIs to set up co-located sessions.[68]

Magic Leap

On Magic Leap 2, spatial anchors live inside Spaces, mapped environments created with the Spaces application; users must localize into a Space before creating anchors. Without AR Cloud, Magic Leap 2 can save up to five Spaces locally on the device.[3] In on-device mode, anchors are stored locally and are available across sessions in the Space where they were made; in AR Cloud mode, they are stored in the cloud and can be accessed from different devices. Localization data on the device is updated every 10 seconds to correct for drift, and an anchor with the default expiration timestamp of 0 is kept indefinitely. Magic Leap 2 cannot relocalize to multiple maps at once, and on-device maps cannot be merged or updated.[69] Magic Leap's developer documentation now labels AR Cloud as deprecated.[3]

Niantic

Niantic Spatial ties anchors to its VPS. In its current SDK, an anchor payload identifies a site anchor that an app can track again in later sessions; content placed through VPS can appear in the same place across sessions and devices, while purely local placement does not necessarily return to the same real-world position unless the app stores extra data.[70]

Unity AR Foundation

Unity's AR Foundation package provides a cross-platform anchor API. In AR Foundation 6.2 the anchor subsystem is supported by the Google ARCore, Apple ARKit, Apple visionOS, HoloLens, Unity OpenXR: Meta and Unity OpenXR: Android XR provider plug-ins (as well as XR Simulation), with saving, loading and erasing persistent anchors offered as optional features.[71] AR Foundation defines an anchor as "a tracked Pose (position and rotation)" whose pose the AR platform updates over time, and recommends creating an anchor at the pose returned by a raycast hit when content is placed against a point cloud.[26] Earlier versions described the lifecycle in more detail: a newly added anchor is "pending" until the anchor manager reports it as added, which may take a frame or two, and anchors "are generally resource intensive objects that should be used sparingly".[72] On ARCore, AR Foundation's persistent anchors are stored on Google Cloud and expire after the chosen lifespan (by default 1 day with an API key and 365 days with keyless authorization).[73]

OpenXR standard

The cross-platform OpenXR API first handled anchors through vendor extensions. Microsoft's XR_MSFT_spatial_anchor lets an application create "an arbitrary freespace point" that the runtime tracks and keeps aligned with the real world, often together with an unbounded reference space, and companion functions persist anchors under a name and recreate them later.[74] Meta's vendor extensions include XR_FB_spatial_entity (which creates anchors with xrCreateSpatialAnchorFB), XR_FB_spatial_entity_storage and XR_FB_spatial_entity_sharing, and later XR_META_spatial_entity_group_sharing and XR_META_colocation_discovery; the registry lists all of them as not ratified.[75][76][77] An Android vendor extension, XR_ANDROID_device_anchor_persistence, also provides anchor persistence.[55] The 2025 XR_EXT spatial entity extensions give these functions a common, vendor-neutral form.[54]

Comparison of spatial anchor implementations (October 2026)
Platform Anchor API Persistence Sharing Status
ARKit (iOS, iPadOS) ARAnchor and ten subclasses[4] On device, by saving an ARWorldMap[45] World map sent to nearby devices; collaborative sessions[62] Active
visionOS WorldAnchor[47] Automatic; ARKit keeps each anchor's UUID and pose[58] Shared world anchors in SharePlay sessions (visionOS 26), not persisted[48] Active
ARCore (Android, iOS) Local, Cloud and Geospatial (WGS84, Terrain, Rooftop) anchors[6][64] Cloud Anchors with a time to live of up to 1 day (API key) or 365 days (keyless or token)[60] Cloud Anchor IDs across Android and iOS[14] Active
Android XR Jetpack XR Anchor[66] Local, by UUID[66] Not covered in the anchor guide Active
Meta Quest OVRSpatialAnchor; system-owned Scene anchors[2] Local device storage and Meta servers[2] Shared Spatial Anchors (group or user based); cloud copies have a time to live[68][61] Active
Magic Leap 2 Anchors inside Spaces[3] On device (up to five local Spaces); AR Cloud mode[3][69] AR Cloud (labeled deprecated)[3] Documentation online
Azure Spatial Anchors Cloud anchors for HoloLens, iOS and Android[7] Cloud Cross-platform Retired 20 November 2024[8]
OpenXR XR_EXT_spatial_anchor, vendor extensions[54][74] XR_EXT_spatial_persistence[54] Vendor extensions Ratified June 2025

Applications and use cases

Gaming and entertainment

Co-located multiplayer is a common use. Meta's design guidance gives the example of friends anchoring the game world of Demeo to their table so they can return to the same setup, and shows the game board of Slimeball! persisting on a physical table across sessions.[78] When Meta launched Shared Spatial Anchors it previewed Advanced Vehicle Combat, a local multiplayer game in which people in the same room see the same world-locked vehicles.[51]

Google's launch partners for persistent Cloud Anchors in 2020 included MARK, a social app for leaving AR messages at real-world locations, and REWILD Our Planet by PHORIA, an AR nature series.[41] Location-based games used cloud anchors at larger scale. Mojang's Minecraft Earth used Azure Spatial Anchors to guide different players to the same placement of its life-size "Adventures"; Minecraft's creative director wrote that "without any need for QR scanning, ASA helps the Adventure get magically placed".[79] The game ended service on 30 June 2021.[80] In November 2024 Niantic began testing Pokémon Playgrounds in Pokémon Go, an experimental feature in which a player places a Pokémon at a specific location and it stays there for others to see and interact with, using Niantic's VPS.[18][81]

Collaborative design and productivity

Shared anchors let several people in one room work on the same 3D content. Meta cites designers anchoring several 3D schematics in place in Gravity Sketch,[78] and ShapesXR added shared spatial anchors in October 2023 so that "2 users located in the same physical space" can design in mixed reality together.[82] When it launched Shared Spatial Anchors, Meta also pointed to Magic Room, a mixed reality experience in development for Horizon Workrooms that it had previewed at Meta Connect 2022.[51]

Retail and commerce

IKEA announced IKEA Place, an app built on Apple's ARKit, on 12 September 2017, with more than 2,000 products available at launch. IKEA said the app scaled products to room dimensions "with 98% accuracy", and Michael Valdsgaard, leader of digital transformation at Inter IKEA Systems, said ARKit gave IKEA the chance "to help shape the development of AR as an accessible tool for real-life decision making".[83] The app also illustrates the limits of anchoring: a 2022 study led by Duke University researchers used it to show a virtual lamp drifting from its original position, colliding with a real glass and moving off the table entirely.[84] Among the partners Google named when it launched persistent Cloud Anchors was Lowe's Persistent View, powered by Streem, which was then "coming soon".[41]

Industrial and enterprise

Microsoft's launch announcement for Azure Spatial Anchors described uses such as walking along a factory line to see "the status of each machine", collaboration in construction and car design, surgical planning, and visualizing IoT data in context with Azure Digital Twins.[7] Researchers at the Australian National University and CSIRO built SABIAT, an indoor asset tracking technique for HoloLens 2 that combines spatial anchors for continuous, rough location tracking with passive fiducial markers for precise positions, and demonstrated it across a multi-level building.[24]

Healthcare and education

Microsoft's 2019 announcement cited Pearson Education, which "enables nursing students and professors to practice diagnosing and treating ill patients in 3D" using cross-platform spatial anchors.[7]

Navigation and tourism

Anchors fixed to buildings and streets support wayfinding and guided tours. Meta's guidance lists scavenger hunts and wayfinding as anchor use cases.[78] Google's 2020 launch partners for persistent Cloud Anchors included SJ Labs by SJ (Swedish Railways), which helps passengers find their way at Stockholm Central Station, and Changdeok ARirang by SK Telecom, an AR tour guide for a Seoul palace.[41] At the Geospatial API's launch, Google said the micromobility companies Bird, Lime and WeMo were using the API to help riders confirm that a scooter or bike was parked in a valid spot.[15] MacRumors reported that ARKit 4 Location Anchors were intended for experiences such as "life-size art installations or navigational directions".[17]

Technical challenges and limitations

Environmental constraints

Anchors depend on visual features, so environments with few features cause problems. Apple notes that tracking quality drops "when the camera is pointed at a blank wall or the scene is too dark".[11] XREAL's NRSDK documentation lists poor lighting, "absence of texture, such as white walls" and "transparent, semi-transparent, or reflective surfaces" as low-quality conditions, and recommends even lighting.[28] Google's Cloud Anchors guide likewise advises avoiding reflective or featureless surfaces and keeping lighting sufficient.[59]

Changing environments are another source of error. Microsoft warns that many people walking around a room can make holograms "jump or drift", that moved furniture can shift holograms from their original locations, and that two identical areas (such as identical conference rooms) can confuse the device so that holograms appear in the wrong place; resetting the map fixes the last problem but loses all spatial anchor placements.[9] In his 2021 thesis on the SABIAT tracking technique, Wennan He notes that HoloLens 2 spatial mapping "suffers when the physical environment is poorly illuminated or highly dynamic", in which case the device may fail to recognize a spatial anchor and holograms drift from their original locations.[23]

Drift and accuracy

Even with anchors, markerless tracking is not perfect. In that 2022 study, Tim Scargill, Gopika Premsankar, Jiasi Chen and Maria Gorlatova measured virtual object stability across six user actions and five smartphone configurations using ARKit and ARCore, and found "noticeable instances of spatial instability in virtual objects in all but the simplest settings", with position errors greater than 10 cm even on the best-performing phones.[84]

Scalability and performance

Anchor tracking is computationally expensive. Unity's documentation warns that too many anchors can lower an app's framerate,[26] and Microsoft notes that persisted local anchors keep their sensor data permanently, which reduces the space available to track other anchors.[1] Microsoft advises against dropping a regular grid of anchors as the user walks.[1] In the SABIAT work, a large grid of spatial anchors on HoloLens 2 was used "even though this is discouraged by the official Microsoft documentation", with the anchors managed through a dedicated LAN server; Azure Spatial Anchors had been tried first but showed an unacceptable latency when synchronizing anchors, possibly because of slow connections to the remote servers from where the work was done.[23]

Cross-platform interoperability

Anchor formats are not interchangeable between ecosystems, so a shared experience across vendors needs a common service or custom middleware. Azure Spatial Anchors was one of the few services that spanned HoloLens, iOS and Android, and its retirement left developers to find other approaches.[7][52] Researchers have proposed local alternatives. Aida Vidal-Balea and colleagues described an off-cloud anchor sharing framework that synchronizes locally stored anchors between HoloLens 2 headsets and desktop computers using Unity, Mirror and the Mixed Reality Toolkit; anchor transmission took from about 12.7 s for small setups to roughly 86 to 87 s for room-sized anchors.[85] Amitabh Mishra and Kevin Foster Carff proposed AprilTag markers in Unity as a fully local alternative to shared spatial anchors, motivated by the connectivity and privacy issues of cloud-based anchors.[86] Khronos describes its 2025 OpenXR spatial entity extensions, which cover spatial anchors and cross-session persistence, as establishing "the first open standard for spatial computing".[54]

Storage, quotas and connectivity

Cloud anchors need a working internet connection to host and resolve.[14] ARCore limits hosting to 30 requests per minute and resolving to 300 per minute per IP address and project, and anchors expire after their time to live.[59][60] Meta's cloud-stored anchors also expire after a time to live.[61] Local anchors avoid these dependencies, which is why Microsoft describes them as a fallback when no internet connection is available.[56]

Relocalization

For a persistent anchor to reappear, the device must relocalize: recognize the current environment by matching it to a previously saved map. Apple's sample code notes that relocalization is more likely to succeed if the user moves to areas of the environment that were visited before, which is why the sample shows a snapshot of the original camera view.[57] Apple's documentation also suggests waiting for the world mapping status to indicate a good time before saving a map.[57] Meta recommends prompting the user to reposition content if a saved anchor can no longer be found, or repositioning it automatically using scene data.[27] Google's guidance for hosting is to keep the camera on the center of interest and physically walk around it rather than rotating in place.[59]

Research

Academic work on spatial anchors focuses on stability, scale and sharing. Scargill and colleagues measured virtual object stability in markerless smartphone AR to quantify how far placed objects move under typical user actions.[84] SABIAT examined whether spatial anchors can replace radio transponders for indoor asset tracking in large buildings.[24] Komang Candra Brata and colleagues combined visual SLAM with Google Street View imagery to improve the precision of outdoor location-based AR anchors, testing 10 points of interest and reporting substantial accuracy gains over GPS-based approaches.[87] The off-cloud and AprilTag frameworks described above explore anchor sharing without vendor clouds.[85][86]

Privacy and ethical considerations

Spatial data collection

Creating and sharing anchors requires capturing data about the user's surroundings. In a 2019 survey of security and privacy in mixed reality, Jaybie de Guzman, Kanchana Thilakarathna and Aruna Seneviratne concluded that the privacy and security implications of MR "are yet to be thoroughly investigated" and highlighted a lack of investigation, implementation and evaluation of data protection approaches.[88] Writing for the Electronic Frontier Foundation in 2020, Katitza Rodriguez and Kurt Opsahl warned about efforts to build "machine-readable, 1:1 scale models" of the world, and argued that a company running such a system could gain "a live audio/visual window into all corners of the world".[89] Mishra and Carff note that cloud-stored spatial data may be reachable by the service provider, one reason they proposed a local alternative.[86]

Bystander privacy

AR sensors also capture people who did not consent. The EFF article recalls the 2013 backlash against Google Glass and notes that even when faces and license plates are blurred, individuals can still be identified "from tattoos to peoples' gait".[89] In 2023, Matthew Corbett and colleagues presented BystandAR at ACM MobiSys, a system that uses the device wearer's eye gaze and voice to tell conversation partners from bystanders and protect bystanders' camera and depth data in real time with on-device processing only; in a 16-participant study it protected 98.14% of bystanders while allowing access to 96.27% of subjects.[90]

Platform privacy controls

Vendors limit what anchor services store and require user consent. Google discards the visual data uploaded when hosting a Cloud Anchor within 24 hours and never sends previously uploaded data to a user's device.[59] Meta requires users to turn on point cloud data sharing before Shared Spatial Anchors pass environment data through Meta's servers, and users can turn it off in settings at any time;[51] sharing also fails unless Enhanced Spatial Services is enabled.[68] On Android XR, apps need the SCENE_UNDERSTANDING_COARSE runtime permission to create or persist anchors,[66] and on visionOS, ARKit sessions require the person's authorization before data providers that need world sensing deliver data,[91] while ARKit persists only each world anchor's UUID and pose.[58] Microsoft Learn notes that the meaning of an anchor, such as a 3D model the user placed, is stored by the app in its own local storage rather than in the system's anchor store.[9]

Outlook

Spatial anchors are the building block of the AR cloud, the idea of a persistent, shared layer of digital content registered to the physical world. Niantic, for example, describes Pokémon Playgrounds and its VPS as steps toward a "Large Geospatial Model" for spatial intelligence that could serve AR glasses as well as robotics and autonomous systems.[18] Interoperability work also extends to global coordinates: the Open Geospatial Consortium's GeoPose 1.0 Data Exchange Standard, approved on 20 June 2022 and published on 8 September 2023 with the Open AR Cloud Association among its submitting organizations, defines how to exchange the location and orientation of real or virtual objects within frames tied to the Earth.[92]

Commercial adoption is less settled than the technology. In an April 2025 post, Niantic Spatial argued that spatial anchors are technically ready but that enterprise adoption is held back by business questions, quoting Gartner's 2025 report Emerging Tech: The Future of Spatial Computing on barriers including "data integration and availability, platform and hardware fragmentation, unclear business models", and warning of "a land grab for presence, visibility, and brand relevance in the physical world".[93]

See also

References

  1. ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 "Spatial anchors - Mixed Reality". Microsoft Learn. Microsoft. https://learn.microsoft.com/en-us/windows/mixed-reality/design/spatial-anchors. Retrieved 2026-10-13.
  2. ↑ 2.0 2.1 2.2 2.3 2.4 "Spatial Anchors Overview". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/documentation/unity/unity-spatial-anchors-overview/. Retrieved 2026-10-13.
  3. ↑ 3.0 3.1 3.2 3.3 3.4 3.5 "Spatial Anchors Overview". Magic Leap Developer Documentation. Magic Leap. https://developer-docs.magicleap.cloud/docs/guides/unity/perception/anchors/spatial-anchors-overview/. Retrieved 2026-10-13.
  4. ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 "ARAnchor". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/aranchor. Retrieved 2026-10-13.
  5. ↑ 5.0 5.1 5.2 5.3 "Concepts (ARCore C API reference)". ARCore - Google for Developers. Google. https://developers.google.com/ar/reference/c/group/concepts. Retrieved 2026-10-13.
  6. ↑ 6.0 6.1 6.2 6.3 6.4 6.5 6.6 "Working with Anchors". ARCore - Google for Developers. Google. 2024-10-31. https://developers.google.com/ar/develop/anchors. Retrieved 2026-10-13.
  7. ↑ 7.0 7.1 7.2 7.3 7.4 7.5 7.6 Microsoft Azure Team (2019-02-25). "Announcing Azure Spatial Anchors for collaborative, cross-platform mixed reality apps". Microsoft Azure Blog. https://azure.microsoft.com/en-us/blog/announcing-azure-spatial-anchors-for-collaborative-cross-platform-mixed-reality-apps/. Retrieved 2026-10-13.
  8. ↑ 8.0 8.1 8.2 "Ending Support in 2024 - Microsoft Lifecycle". Microsoft Learn. Microsoft. https://learn.microsoft.com/en-us/lifecycle/end-of-support/end-of-support-2024. Retrieved 2026-10-13.
  9. ↑ 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 "Coordinate systems - Mixed Reality". Microsoft Learn. Microsoft. https://learn.microsoft.com/en-us/windows/mixed-reality/design/coordinate-systems. Retrieved 2026-10-13.
  10. ↑ "ARWorldTrackingConfiguration". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/arworldtrackingconfiguration. Retrieved 2026-10-13.
  11. ↑ 11.0 11.1 11.2 11.3 "Understanding World Tracking". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/understanding-world-tracking. Retrieved 2026-10-13.
  12. ↑ 12.0 12.1 Andreas Jakl (2018-08-06). "Basics of AR: Anchors, Keypoints & Feature Detection". andreasjakl.com. https://www.andreasjakl.com/basics-of-ar-anchors-keypoints-feature-detection/. Retrieved 2026-10-13.
  13. ↑ Raul Mur-Artal, J. M. M. Montiel, Juan D. Tardos (2015). "ORB-SLAM: A Versatile and Accurate Monocular SLAM System". IEEE Transactions on Robotics, vol. 31, no. 5, pp. 1147-1163. https://doi.org/10.1109/TRO.2015.2463671. Retrieved 2026-10-13.
  14. ↑ 14.0 14.1 14.2 14.3 14.4 "Cloud Anchors allow different users to share AR experiences". ARCore - Google for Developers. Google. 2026-09-04. https://developers.google.com/ar/develop/cloud-anchors. Retrieved 2026-10-13.
  15. ↑ 15.0 15.1 Bilawal Sidhu, Eric Lai (2022-05-11). "Make the world your canvas with the ARCore Geospatial API". Google Developers Blog. https://developers.googleblog.com/en/make-the-world-your-canvas-with-the-arcore-geospatial-api. Retrieved 2026-10-13.
  16. ↑ 16.0 16.1 "ARGeoAnchor". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/argeoanchor. Retrieved 2026-10-13.
  17. ↑ 17.0 17.1 17.2 17.3 Hartley Charlton (2020-06-22). "Apple Announces ARKit 4 with Location Anchors, Depth API, and Improved Face Tracking". MacRumors. https://www.macrumors.com/2020/06/22/apple-announces-arkit-4/. Retrieved 2026-10-13.
  18. ↑ 18.0 18.1 18.2 Eric Brachmann, Victor Adrian Prisacariu (2024-11-12). "Building a Large Geospatial Model to Achieve Spatial Intelligence". Niantic Spatial blog. https://www.nianticspatial.com/blog/largegeospatialmodel. Retrieved 2026-10-13.
  19. ↑ 19.0 19.1 19.2 Dave Burke (2017-08-29). "ARCore: Augmented reality at Android scale". The Keyword (Google). https://blog.google/products/arcore/arcore-augmented-reality-android-scale/. Retrieved 2026-10-13.
  20. ↑ Jin-Chun Piao, Shin-Dug Kim (2017). "Adaptive Monocular Visual-Inertial SLAM for Real-Time Augmented Reality Applications in Mobile Devices". Sensors, vol. 17, no. 11, article 2567. https://doi.org/10.3390/s17112567. Retrieved 2026-10-13.
  21. ↑ Anastasios I. Mourikis, Stergios I. Roumeliotis (2007). "A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation". Proceedings 2007 IEEE International Conference on Robotics and Automation. pp. 3565-3572. https://doi.org/10.1109/ROBOT.2007.364024. Retrieved 2026-10-13.
  22. ↑ Tong Qin, Peiliang Li, Shaojie Shen (2018). "VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator". IEEE Transactions on Robotics, vol. 34, no. 4, pp. 1004-1020. https://doi.org/10.1109/TRO.2018.2853729. Retrieved 2026-10-13.
  23. ↑ 23.0 23.1 23.2 Wennan He (2021). "Tracking Support for Collaborative Warehousing using Head-mounted Augmented Reality". MPhil thesis, Australian National University. https://openresearch-repository.anu.edu.au/items/1f906874-8e49-4df3-b933-baca761f35e1. Retrieved 2026-10-13.
  24. ↑ 24.0 24.1 24.2 Wennan He, Mingze Xi, Henry Gardner, Ben Swift, Matt Adcock (2021). "Spatial Anchor Based Indoor Asset Tracking". 2021 IEEE Virtual Reality and 3D User Interfaces (VR). https://doi.org/10.1109/VR50410.2021.00047. Retrieved 2026-10-13.
  25. ↑ 25.0 25.1 25.2 Lucas Matney (2017-12-15). "Google kills its Tango augmented reality platform, shifting focus to ARCore". TechCrunch. https://techcrunch.com/2017/12/15/google-kills-its-tango-augmented-reality-platform-shifting-focus-to-arcore/. Retrieved 2026-10-13.
  26. ↑ 26.0 26.1 26.2 "Introduction to anchors". AR Foundation 6.2 manual. Unity Technologies. https://docs.unity3d.com/Packages/[email protected]/manual/features/anchors/introduction.html. Retrieved 2026-10-13.
  27. ↑ 27.0 27.1 27.2 "Spatial Anchors Best Practices". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/documentation/unity/unity-spatial-anchors-best-practices/. Retrieved 2026-10-13.
  28. ↑ 28.0 28.1 "Spatial Anchor". NRSDK Developer Documentation. XREAL. https://xreal.gitbook.io/nrsdk/development/spatial-anchor. Retrieved 2026-10-13.
  29. ↑ Davide Scaramuzza, Friedrich Fraundorfer (2011). "Visual Odometry (Tutorial)". IEEE Robotics and Automation Magazine, vol. 18, no. 4, pp. 80-92. https://doi.org/10.1109/MRA.2011.943233. Retrieved 2026-10-13.
  30. ↑ D. Nister, O. Naroditsky, J. Bergen (2004). "Visual odometry". Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 2004). pp. 652-659. https://doi.org/10.1109/CVPR.2004.1315094. Retrieved 2026-10-13.
  31. ↑ Hugh Durrant-Whyte, Tim Bailey (2006). "Simultaneous localization and mapping: part I". IEEE Robotics and Automation Magazine, vol. 13, no. 2, pp. 99-110. https://doi.org/10.1109/MRA.2006.1638022. Retrieved 2026-10-13.
  32. ↑ Ronald T. Azuma (1997). "A Survey of Augmented Reality". Presence: Teleoperators and Virtual Environments, vol. 6, no. 4, pp. 355-385. https://doi.org/10.1162/pres.1997.6.4.355. Retrieved 2026-10-13.
  33. ↑ "ARToolKit Documentation (History)". Human Interface Technology Laboratory, University of Washington. http://www.hitl.washington.edu/artoolkit/documentation/history.htm. Retrieved 2026-10-13.
  34. ↑ H. Kato, M. Billinghurst (1999). "Marker tracking and HMD calibration for a video-based augmented reality conferencing system". Proceedings 2nd IEEE and ACM International Workshop on Augmented Reality (IWAR'99). pp. 85-94. https://doi.org/10.1109/IWAR.1999.803809. Retrieved 2026-10-13.
  35. ↑ Andrew J. Davison, Ian D. Reid, Nicholas D. Molton, Olivier Stasse (2007). "MonoSLAM: Real-Time Single Camera SLAM". IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 29, no. 6, pp. 1052-1067. https://doi.org/10.1109/TPAMI.2007.1049. Retrieved 2026-10-13.
  36. ↑ Georg Klein, David Murray (2007). "Parallel Tracking and Mapping for Small AR Workspaces". 2007 6th IEEE and ACM International Symposium on Mixed and Augmented Reality. pp. 1-10. https://doi.org/10.1109/ISMAR.2007.4538852. Retrieved 2026-10-13.
  37. ↑ Cesar Cadena, Luca Carlone, Henry Carrillo, Yasir Latif, Davide Scaramuzza, Jose Neira, Ian Reid, John J. Leonard (2016). "Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age". IEEE Transactions on Robotics, vol. 32, no. 6, pp. 1309-1332. https://doi.org/10.1109/TRO.2016.2624754. Retrieved 2026-10-13.
  38. ↑ Rose Behar (2016-06-09). "Lenovo debuts first Google Tango smartphone, the Phab2 Pro for $499 USD". MobileSyrup. https://mobilesyrup.com/2016/06/09/lenovo-debuts-first-project-tango-smartphone-the-phab2-pro/. Retrieved 2026-10-13.
  39. ↑ "Tango-infused Lenovo Phab2 Pro is now available alongside 35 AR apps". GSMArena. 2016-11-01. https://www.gsmarena.com/tangoinfused_lenovo_phab2_pro_is_now_available_alongside_35_ar_apps-news-21398.php. Retrieved 2026-10-13.
  40. ↑ Anuj Gosalia (2018-02-23). "Announcing ARCore 1.0 and new updates to Google Lens". Google Developers Blog. https://developers.googleblog.com/2018/02/announcing-arcore-10-and-new-updates-to.html. Retrieved 2026-10-13.
  41. ↑ 41.0 41.1 41.2 41.3 41.4 41.5 Eric Lai (2020-10-06). "Improving shared AR experiences with Cloud Anchors in ARCore 1.20". Google Developers Blog. https://developers.googleblog.com/2020/10/improving-shared-ar-experiences-with.html. Retrieved 2026-10-13.
  42. ↑ Nicole Lee (2017-06-07). "Apple's AR strength is making it available to everyone". Engadget. https://www.engadget.com/2017-06-07-apple-arkit-largest-ar-platform.html. Retrieved 2026-10-13.
  43. ↑ "iOS 11.3 is available today". Apple Newsroom. Apple. 2018-03-29. https://www.apple.com/newsroom/2018/03/ios-11-3-is-available-today/. Retrieved 2026-10-13.
  44. ↑ "Apple unveils ARKit 2". Apple Newsroom. Apple. 2018-06-04. https://www.apple.com/newsroom/2018/06/apple-unveils-arkit-2/. Retrieved 2026-10-13.
  45. ↑ 45.0 45.1 45.2 45.3 "ARWorldMap". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/arworldmap. Retrieved 2026-10-13.
  46. ↑ 46.0 46.1 "ARParticipantAnchor". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/arparticipantanchor. Retrieved 2026-10-13.
  47. ↑ 47.0 47.1 47.2 "WorldAnchor". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/worldanchor. Retrieved 2026-10-13.
  48. ↑ 48.0 48.1 48.2 "init(originFromAnchorTransform:sharedWithNearbyParticipants:)". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/worldanchor/init(originfromanchortransform:sharedwithnearbyparticipants:). Retrieved 2026-10-13.
  49. ↑ 49.0 49.1 Abner Li (2020-10-06). "Google launches persistent Cloud Anchors for creating AR layers over the real world". 9to5Google. https://9to5google.com/2020/10/06/google-persistent-cloud-anchors/. Retrieved 2026-10-13.
  50. ↑ 50.0 50.1 "Presence Platform Spatial Anchors Experimental and Voice SDK Now Available". Meta Horizon OS Developers blog. 2021-12-07. https://developers.meta.com/horizon/blog/presence-platform-spatial-anchors-experimental-and-voice-sdk-now-available/. Retrieved 2026-10-13.
  51. ↑ 51.0 51.1 51.2 51.3 51.4 51.5 "Build Local Multiplayer Experiences With Shared Spatial Anchors on Meta Quest". Meta Horizon OS Developers blog. 2022-12-15. https://developers.meta.com/horizon/blog/build-local-multiplayer-experiences-shared-spatial-anchors/. Retrieved 2026-10-13.
  52. ↑ 52.0 52.1 "Azure Spatial Anchors retirement, recommended replacement?". Microsoft Q&A (Microsoft Learn). 2023-11-22. https://learn.microsoft.com/en-us/answers/questions/1433376/azure-spatial-anchors-retirement-recommended-repla. Retrieved 2026-10-13.
  53. ↑ Josef Erl (2023-11-28). "Microsoft is set to retire Azure Spatial Anchors". MIXED. https://mixed-news.com/en/microsoft-is-set-to-retire-azure-spatial-anchors/. Retrieved 2026-10-13.
  54. ↑ 54.0 54.1 54.2 54.3 54.4 Khronos OpenXR Working Group (2025-06-10). "OpenXR Spatial Entities Extensions Released for Developer Feedback". The Khronos Group blog. https://www.khronos.org/blog/openxr-spatial-entities-extensions-released-for-developer-feedback. Retrieved 2026-10-13.
  55. ↑ 55.0 55.1 "XR_ANDROID_device_anchor_persistence". OpenXR 1.1 Reference Pages. The Khronos Group. https://registry.khronos.org/OpenXR/specs/1.1/man/html/XR_ANDROID_device_anchor_persistence.html. Retrieved 2026-10-13.
  56. ↑ 56.0 56.1 56.2 "World locking and spatial anchors in Unity - Mixed Reality". Microsoft Learn. Microsoft. https://learn.microsoft.com/en-us/windows/mixed-reality/develop/unity/spatial-anchors-in-unity. Retrieved 2026-10-13.
  57. ↑ 57.0 57.1 57.2 "Saving and loading world data". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/saving-and-loading-world-data. Retrieved 2026-10-13.
  58. ↑ 58.0 58.1 58.2 58.3 "Tracking specific points in world space". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/visionos/tracking-points-in-world-space. Retrieved 2026-10-13.
  59. ↑ 59.0 59.1 59.2 59.3 59.4 59.5 59.6 "Cloud Anchors developer guide for Android (Kotlin/Java)". ARCore - Google for Developers. Google. 2026-09-04. https://developers.google.com/ar/develop/java/cloud-anchors/developer-guide. Retrieved 2026-10-13.
  60. ↑ 60.0 60.1 60.2 "ARAnchorManagerExtensions Class Reference". ARCore - Google for Developers. Google. https://developers.google.com/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/ARAnchorManagerExtensions. Retrieved 2026-10-13.
  61. ↑ 61.0 61.1 61.2 "Shared Spatial Anchors Troubleshooting Guide". Meta Horizon OS Developers. Meta. 2024-08-02. https://developers.meta.com/horizon/documentation/unity/unity-ssa-ts. Retrieved 2026-10-13.
  62. ↑ 62.0 62.1 62.2 "Creating a multiuser AR experience". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/creating-a-multiuser-ar-experience. Retrieved 2026-10-13.
  63. ↑ "HoloLens Anchor Sharing". Unity Manual 2019.2. Unity Technologies. https://docs.unity3d.com/2019.2/Documentation/Manual/windowsholographic-anchorsharing.html. Retrieved 2026-10-13.
  64. ↑ 64.0 64.1 "Use Geospatial anchors to position real-world content on Android SDK (Kotlin/Java)". ARCore - Google for Developers. Google. 2026-09-04. https://developers.google.com/ar/develop/geospatial/java/anchors. Retrieved 2026-10-13.
  65. ↑ Eric Lai (2023-05-10). "Build transformative augmented reality experiences with new ARCore and geospatial features". Google Developers Blog. https://developers.googleblog.com/2023/05/build-transformative-augmented-reality-experiences-with-new-arcore-and-geospatial-features.html. Retrieved 2026-10-13.
  66. ↑ 66.0 66.1 66.2 66.3 "Create anchors with ARCore for Jetpack XR". Android Developers. Google. 2026-09-22. https://developer.android.com/develop/xr/jetpack-xr-sdk/arcore/anchors. Retrieved 2026-10-13.
  67. ↑ "Unity Spatial Anchors Persist Content". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/documentation/unity/unity-spatial-anchors-persist-content/. Retrieved 2026-10-13.
  68. ↑ 68.0 68.1 68.2 "Shared Spatial Anchors". Meta Horizon OS Developers. Meta. 2026-10-07. https://developers.meta.com/horizon/documentation/unity/unity-shared-spatial-anchors/. Retrieved 2026-10-13.
  69. ↑ 69.0 69.1 "Spatial Anchors". Magic Leap Developer Documentation. Magic Leap. https://developer-docs.magicleap.cloud/docs/guides/features/spaces/spatial-anchors/. Retrieved 2026-10-13.
  70. ↑ "Place virtual content with VPS2". Niantic Spatial Platform documentation. Niantic Spatial. https://www.nianticspatial.com/docs/nsdk/how-to/vps2/placing_virtual_content. Retrieved 2026-10-13.
  71. ↑ "Anchors platform support". AR Foundation 6.2 manual. Unity Technologies. https://docs.unity3d.com/Packages/[email protected]/manual/features/anchors/platform-support.html. Retrieved 2026-10-13.
  72. ↑ "AR Anchor Manager". AR Foundation 3.0 manual. Unity Technologies. https://docs.unity3d.com/Packages/[email protected]/manual/anchor-manager.html. Retrieved 2026-10-13.
  73. ↑ "Persistent anchors". Google ARCore XR Plug-in 6.2 manual. Unity Technologies. https://docs.unity3d.com/Packages/[email protected]/manual/features/anchors/persistent-anchors.html. Retrieved 2026-10-13.
  74. ↑ 74.0 74.1 "XrSpatialAnchorMSFT". OpenXR 1.1 Reference Pages. The Khronos Group. https://registry.khronos.org/OpenXR/specs/1.1/man/html/XrSpatialAnchorMSFT.html. Retrieved 2026-10-13.
  75. ↑ "XR_FB_spatial_entity". OpenXR 1.1 Reference Pages. The Khronos Group. https://registry.khronos.org/OpenXR/specs/1.1/man/html/XR_FB_spatial_entity.html. Retrieved 2026-10-13.
  76. ↑ "XR_FB_spatial_entity_sharing". OpenXR 1.1 Reference Pages. The Khronos Group. https://registry.khronos.org/OpenXR/specs/1.1/man/html/XR_FB_spatial_entity_sharing.html. Retrieved 2026-10-13.
  77. ↑ "XR_META_colocation_discovery". OpenXR 1.1 Reference Pages. The Khronos Group. https://registry.khronos.org/OpenXR/specs/1.1/man/html/XR_META_colocation_discovery.html. Retrieved 2026-10-13.
  78. ↑ 78.0 78.1 78.2 "Spatial anchors (mixed reality design guidelines)". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/design/mr-design-spatial-anchors/. Retrieved 2026-10-13.
  79. ↑ Saxs Persson (2019-09-28). "Celebrating the Minecraft Community at MINECON Live". Xbox Wire. https://news.xbox.com/en-us/2019/09/28/minecon-live-2019/. Retrieved 2026-10-13.
  80. ↑ Ian Hamilton (2021-01-05). "Minecraft Earth Is Ending In June 2021 After Less Than Two Years". UploadVR. https://www.uploadvr.com/minecraft-earth-dead-june-2021-two-years/. Retrieved 2026-10-13.
  81. ↑ Iwan Morris (2024-11-15). "Pokémon Go currently testing exciting new Pokémon Playgrounds feature". Pocket Gamer. https://www.pocketgamer.com/pokemon-go/pokemon-playgrounds. Retrieved 2026-10-13.
  82. ↑ "Update: Shadows, Shared Spatial Anchors, Copy and paste between spaces". ShapesXR blog. 2023-10-12. https://www.shapesxr.com/post/update-shadows-shared-spatial-anchors-copy-and-paste-between-spaces. Retrieved 2026-10-13.
  83. ↑ "IKEA launches IKEA Place, a new app that allows people to virtually place furniture in their home". IKEA Newsroom. Inter IKEA Systems. 2017-09-12. https://www.ikea.com/global/en/newsroom/innovation/ikea-launches-ikea-place-a-new-app-that-allows-people-to-virtually-place-furniture-in-their-home-170912/. Retrieved 2026-10-13.
  84. ↑ 84.0 84.1 84.2 Tim Scargill, Gopika Premsankar, Jiasi Chen, Maria Gorlatova (2022). "Here To Stay: A Quantitative Comparison of Virtual Object Stability in Markerless Mobile AR". 2022 2nd International Workshop on Cyber-Physical-Human System Design and Implementation (CPHS). pp. 24-29. https://doi.org/10.1109/CPHS56133.2022.9804545. Retrieved 2026-10-13.
  85. ↑ 85.0 85.1 Aida Vidal-Balea, Oscar Blanco-Novoa, Paula Fraga-Lamas, Tiago M. Fernandez-Carames (2025). "Off-Cloud Anchor Sharing Framework for Multi-User and Multi-Platform Mixed Reality Applications". Applied Sciences, vol. 15, no. 13, article 6959. https://doi.org/10.3390/app15136959. Retrieved 2026-10-13.
  86. ↑ 86.0 86.1 86.2 Amitabh Mishra, Kevin Foster Carff (2025). "AprilTags in Unity: A Local Alternative to Shared Spatial Anchors for Synergistic Shared Space Applications Involving Extended Reality and the Internet of Things". Sensors, vol. 25, no. 14, article 4408. https://doi.org/10.3390/s25144408. Retrieved 2026-10-13.
  87. ↑ Komang Candra Brata, Nobuo Funabiki, Yohanes Yohanie Fridelin Panduman, Evianita Dewi Fajrianti (2024). "An Enhancement of Outdoor Location-Based Augmented Reality Anchor Precision through VSLAM and Google Street View". Sensors, vol. 24, no. 4, article 1161. https://doi.org/10.3390/s24041161. Retrieved 2026-10-13.
  88. ↑ Jaybie A. de Guzman, Kanchana Thilakarathna, Aruna Seneviratne (2019). "Security and Privacy Approaches in Mixed Reality: A Literature Survey". ACM Computing Surveys, vol. 52, no. 6. https://doi.org/10.1145/3359626. Retrieved 2026-10-13.
  89. ↑ 89.0 89.1 Katitza Rodriguez, Kurt Opsahl (2020-10-16). "Augmented Reality Must Have Augmented Privacy". Electronic Frontier Foundation. https://www.eff.org/deeplinks/2020/10/augmented-reality-must-have-augmented-privacy. Retrieved 2026-10-13.
  90. ↑ Matthew Corbett, Brendan David-John, Jiacheng Shang, Y. Charlie Hu, Bo Ji (2023). "BystandAR: Protecting Bystander Visual Data in Augmented Reality Systems". Proceedings of the 21st Annual International Conference on Mobile Systems, Applications and Services (MobiSys '23). pp. 370-382. https://doi.org/10.1145/3581791.3596830. Retrieved 2026-10-13.
  91. ↑ "ARKitSession". Apple Developer Documentation. Apple. https://developer.apple.com/documentation/arkit/arkitsession. Retrieved 2026-10-13.
  92. ↑ Carl Stephen Smyth (editor) (2023-09-08). "OGC GeoPose 1.0 Data Exchange Standard". Open Geospatial Consortium. https://docs.ogc.org/is/21-056r11/21-056r11.html. Retrieved 2026-10-13.
  93. ↑ Carmen Goldstein (2025-04-25). "Spatial Anchors Are Ready - Is Your Enterprise?". Niantic Spatial blog. https://www.nianticspatial.com/blog/spatial-anchors-enterprise-readiness. Retrieved 2026-10-13.
Contents