ARKit
More actions
| ARKit | |
|---|---|
| |
| Information | |
| Type | Software |
| Industry | Virtual reality, Augmented reality |
| Developer | Apple |
| Operating System | iOS, iPadOS, visionOS; macOS for remote Vision Pro rendering |
| Supported Devices | Compatible iPhone and iPad models; Apple Vision Pro; compatible Mac and Vision Pro combinations for remote rendering. Requirements vary by feature. |
| Release Date | Developer preview: June 5, 2017; public iOS 11 release: September 19, 2017 |
| Website | https://developer.apple.com/documentation/arkit |
ARKit is Apple's framework for augmented reality and spatial sensing. It combines motion tracking, scene analysis and anchors that relate virtual content to a physical environment. Its iPhone and iPad interfaces support camera-based AR experiences; its visionOS interfaces expose selected tracking and scene data to immersive applications on Apple Vision Pro. The two platforms use different session APIs and permissions.[1][2]
Introduction and development
Apple introduced ARKit in the iOS 11 developer preview on June 5, 2017, during Worldwide Developers Conference. The announcement described AR experiences built from an iPhone or iPad's camera, motion sensors and processors, including games, shopping and industrial design. Public availability followed with iOS 11 on September 19, 2017. The June developer preview and September operating-system release were separate events.[3][4]
ARKit's capabilities expanded beyond its initial horizontal-surface placement. ARKit 1.5, released with iOS 11.3 on March 29, 2018, added vertical-surface detection and recognition of images such as posters and artwork. Later mobile interfaces added body tracking, people occlusion, collaborative sessions and LiDAR scene data, each with its own operating-system and hardware requirements.[5][6][7]
ARKit on iPhone and iPad
An ARSession coordinates camera capture, motion-sensor readings and image analysis. An application runs the session with an ARConfiguration subclass suited to the experience, then receives frames, anchors and session events. ARKit supplies tracking data; an application uses a renderer to draw the associated virtual content.[8]
Visual-inertial odometry and world tracking
Mobile world tracking uses visual-inertial odometry to combine camera-image features with motion-sensor data. ARWorldTrackingConfiguration tracks both translation and rotation in six degrees of freedom. This allows a virtual object to appear stationary in the environment as a person moves the device around it.[9][10]
Tracking depends on the visible scene. Poor lighting, featureless surfaces, motion blur and excessive device movement can reduce quality. Initial plane detection estimates can change as ARKit gathers more observations, including a detected plane's position and extent. Applications can inspect tracking states and show guidance while tracking initializes or becomes limited.[9][11]
Scene understanding and lighting estimation
World-tracking sessions can detect horizontal and vertical planes, recognize reference images and objects, and perform ray casts to find surfaces corresponding to a screen position. Plane anchors provide locations for content such as a virtual object on a table. A reference image must be supplied by the application; image-only tracking and world tracking with image detection have different behavior when that image leaves the camera view.[10][12]
When light estimation is enabled, an ARFrame can include an ARLightEstimate with ambient intensity and color-temperature estimates. A renderer can use these estimates to make virtual lighting more consistent with the camera image. World-tracking configurations also expose environment texturing and environment-probe anchors for reflections.[13][10]
Face and body tracking
ARFaceTrackingConfiguration uses the front camera and returns face anchors describing position, orientation, surface geometry and expressions. Apple documents TrueDepth camera requirements for iOS and iPadOS 13 and earlier, and support on devices with an Apple Neural Engine from iOS and iPadOS 14. Applications must check isSupported on the device. Face tracking exposes personal facial information, and Apple requires a privacy policy explaining the use of face data.[14]
ARBodyTrackingConfiguration, available from iOS and iPadOS 13, uses the rear camera to track a detected person's body and supplies ARBodyAnchor data. Its frame semantics also provide detected 2D body-joint positions. Body tracking can be combined with plane or image detection to place an animated virtual character in the scene.[6][15]
People occlusion, LiDAR and scene reconstruction
People occlusion prevents virtual content from drawing over regions occupied by a detected person. personSegmentation masks people regardless of their distance, while personSegmentationWithDepth allows a person to cover virtual content when the person is nearer to the camera. Apple identifies A12 and later devices as supporting people occlusion. Applications can check supportsFrameSemantics before enabling it.[6][16]
On supported LiDAR devices, scene reconstruction estimates the physical environment as a polygonal mesh, divided among mesh anchors. Apple's reconstruction sample, available from iOS and iPadOS 13.4, demonstrates ray casting on nonplanar surfaces, mesh classification, occlusion and collisions between virtual content and real-world geometry. Plane detection can flatten parts of the reconstructed mesh where ARKit detects a plane.[7]
The separate scene-depth interface provides per-frame depth maps, confidence values and a temporally smoothed depth option. Apple's sample requires a LiDAR Scanner and checks device support before requesting these frame semantics. Depth maps and reconstructed meshes are different representations; the sample's enlargement of a depth map interpolates its low-resolution data rather than adding new sensor observations.[17]
Persistence, collaboration and location anchors
From iOS 12, an ARWorldMap can store world-tracking state and anchors for later relocalization. Restoring a map requires ARKit to recognize the environment again, and changes in lighting or scene features can prevent recovery. Saving a map therefore does not guarantee that content will return to its prior physical location.[11]
Collaborative sessions exchange world-mapping information and participant anchors between nearby devices. The application enables collaboration on a world-tracking configuration and implements transmission of the resulting ARSession.CollaborationData. ARKit supplies the data, while the application chooses the networking framework and handles transport. The devices need overlapping observations so ARKit can merge their maps.[18]
ARGeoTrackingConfiguration, available from iOS and iPadOS 14, relates location anchors to latitude, longitude and optional altitude. It combines GPS and other location information with Apple's previously captured localization imagery. Apple limits geotracking to supported outdoor locations, requires an internet connection, and documents A12 or later hardware with cellular/GPS capability. Applications must check both configuration support and availability at the requested location.[19]
Device support and permissions
Apple's mobile setup documentation specifies iOS 11 or later and an A9 or later processor for the base framework, while warning that individual features need later systems or specific hardware. Applications should check the relevant configuration's isSupported property and feature-specific support methods. The original 2017 device list is consequently a historical list, rather than an exhaustive description of later ARKit support.[20]
Mobile AR sessions require the person's camera permission and an NSCameraUsageDescription explanation in the application's information property list. The arkit required-device-capability key can restrict installation when AR is essential; an application with optional AR can instead test support at runtime and offer another interface.[20]
ARKit for visionOS
On visionOS, ARKitSession runs a set of data providers that deliver anchors for individual features. These include WorldTrackingProvider, PlaneDetectionProvider, SceneReconstructionProvider, ImageTrackingProvider and HandTrackingProvider. Hand tracking supplies left- and right-hand anchors and skeletal-joint data that an application can use for custom gestures or content attached to a hand.[2][21]
Access requires the application to present a Full Space, which can use a mixed immersion style; this does not require replacing the entire physical surroundings with a virtual scene. Hand tracking requires a hands-tracking usage description and authorization. Image tracking, plane detection and scene reconstruction require a world-sensing usage description and authorization. World tracking is distinct from world sensing and does not require that authorization. Applications must handle denied or revoked access and check provider support.[22]
Dated spatial-computing additions
| Introduction | Documented ARKit changes | Scope and qualifications |
|---|---|---|
| visionOS 2, presented at WWDC24 | Room tracking, slanted-plane detection, object tracking, display-aligned hand updates and hand-anchor prediction. | Room tracking describes the currently occupied room and needs world-sensing authorization. Object tracking uses reference objects trained in Create ML from USDZ models. Apple's 2024 presentation describes statically placed objects. Predicted hand anchors trade some accuracy for lower delay.[23] |
| visionOS 26, presented at WWDC25 | RealityKit exposes ARKit anchor data through its spatial-tracking and anchor-event APIs. | A SpatialTrackingSession, AnchorStateEvents and ARKitAnchorComponent provide anchor transforms and other data to RealityKit applications.[24][25]
|
| visionOS 27 and iOS 27, presented at WWDC26 | Higher-frequency tracking of moving reference objects, an extended Create ML training mode, and a choice between rendered and metric object-pose coordinate spaces on visionOS. | The iOS example uses ARWorldTrackingConfiguration, with detectionObjects for mostly stationary objects and trackingObjects for moving ones. It delivers ARObjectAnchor updates through an ARSessionDelegate, rather than adopting visionOS's data-provider API. These are version-specific additions described in the 2026 presentation.[26]
|
Rendering and development tools
Apple's documentation includes RealityKit views for rendering AR content, as well as the older SceneKit and SpriteKit view interfaces. A custom renderer can use Metal. ARKit configuration choices also affect computation and energy use, so Apple's guidance recommends enabling only the features required by an experience.[27][6]
Unity provides an Apple ARKit XR Plug-in for handheld AR through AR Foundation. The version 6.1 documentation identifies the implemented features and its Unity and Xcode requirements. Unreal Engine also provides an Apple ARKit plugin and documents supported handheld-AR workflows. An engine's support and toolchain requirements must be checked separately from the base framework's availability.[28][29]
Apple extended ARKitSession to macOS 26 for remote immersive rendering to Vision Pro. In that workflow, a Mac application connects its session to a remote device identifier and uses world tracking to query Vision Pro's pose. Apple's WWDC25 demonstration combines ARKit with Compositor Services and Metal; it does not describe a Mac using its own camera as a substitute for the headset's tracking sensors.[21][30]
Uses and early demonstrations
The 2017 developer-preview period produced experimental applications in painting, measurement, games, product visualization and education. Contemporary coverage showed Normal's demonstration connecting a HTC Vive painting experience to an ARKit-enabled iPad, Wingnut AR's noninteractive battlefield presentation using Unreal Engine 4, and a solar-system demonstration by the developer krutosh. The same coverage described Jelmer Verhoog's vehicle-preview prototype depicting a Tesla Model 3. These demonstrations documented applications during the preview period; they are not a list of current released products.[31]
Smart Picture 3D's Measurement Cloud demonstrated room measurement, while Nexus Interactive Arts experimented with an iPhone 7's ARKit tracking and passthrough imagery in a Google Cardboard headset. These are historical examples of ARKit's use in measurement and VR experiments; they do not establish measurement accuracy or compatibility with later devices.[32]
Tracking evaluation and limits
Independent research has evaluated ARKit with different hardware, trajectories and reference measurements. Results need to retain those conditions: a measured trajectory error is not an accuracy specification for every application or later version.
| Study | ARKit setup and method | Interpretation |
|---|---|---|
| ADVIO, ECCV 2018 | iPhone 6s running iOS 11.0.3; 23 indoor and outdoor recordings. Reference trajectories combined calibrated inertial data with manually identified position fixes. | The authors reported mostly successful tracking along with failure cases and severe drift in some outdoor sequences. Their reference was an estimated trajectory, with uncertainty in the manual fixes. The experiment concerns the tested iPhone 6s and iOS 11.0.3 setup.[33] |
| Marino and colleagues, Sensors, 2022 | Eight mobile devices, including an iPad Pro and iPhone 11, tested with ARKit or ARCore in a laboratory in 2021. An external OptiTrack system supplied comparison poses for three paths, each repeated ten times. | The translational absolute trajectory error and relative pose error measures differed with device and path. The authors limit their conclusions to the tested systems and laboratory trajectories. Their suggestion that LiDAR contributed to the iPad's results is not an isolated measurement of LiDAR's contribution.[34] |
| Kim and colleagues, 2022 preprint | iPhone 12 Pro Max running iOS 14.7.1, compared with ARCore, RealSense T265 and ZED 2 in six environments. Tests measured final drift after returning to the start point and compared trajectory shapes with maps. | Endpoint drift is different from error measured against a continuously observed ground-truth trajectory. These results describe the particular devices and tests; the paper's vehicle experiments were outside the officially supported uses of the tested systems.[35] |
References
- ↑ "ARKit". Apple Developer Documentation. https://developer.apple.com/documentation/arkit. Retrieved 2026-10-12.
- ↑ 2.0 2.1 "Meet ARKit for spatial computing". Apple Developer. 2023. https://developer.apple.com/videos/play/wwdc2023/10082/. Retrieved 2026-10-12.
- ↑ "iOS 11 brings powerful new features to iPhone and iPad this fall". Apple Newsroom. 2017-06-05. https://www.apple.com/newsroom/2017/06/ios-11-brings-new-features-to-iphone-and-ipad-this-fall/. Retrieved 2026-10-12.
- ↑ "iOS 11 is available tomorrow". Apple Newsroom. 2017-09-18. https://www.apple.com/newsroom/2017/09/ios-11-available-tomorrow/. Retrieved 2026-10-12.
- ↑ "iOS 11.3 is available today". Apple Newsroom. 2018-03-29. https://www.apple.com/newsroom/2018/03/ios-11-3-is-available-today/. Retrieved 2026-10-12.
- ↑ 6.0 6.1 6.2 6.3 "Configuration Objects". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/configuration-objects. Retrieved 2026-10-12.
- ↑ 7.0 7.1 "Visualizing and interacting with a reconstructed scene". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/visualizing-and-interacting-with-a-reconstructed-scene. Retrieved 2026-10-12.
- ↑ "ARSession". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arsession. Retrieved 2026-10-12.
- ↑ 9.0 9.1 "Understanding World Tracking". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/understanding-world-tracking. Retrieved 2026-10-12.
- ↑ 10.0 10.1 10.2 "ARWorldTrackingConfiguration". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arworldtrackingconfiguration. Retrieved 2026-10-12.
- ↑ 11.0 11.1 "Managing Session Life Cycle and Tracking Quality". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/managing-session-life-cycle-and-tracking-quality. Retrieved 2026-10-12.
- ↑ "ARImageTrackingConfiguration". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arimagetrackingconfiguration. Retrieved 2026-10-12.
- ↑ "ARLightEstimate". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arlightestimate. Retrieved 2026-10-12.
- ↑ "ARFaceTrackingConfiguration". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arfacetrackingconfiguration. Retrieved 2026-10-12.
- ↑ "ARBodyTrackingConfiguration". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arbodytrackingconfiguration. Retrieved 2026-10-12.
- ↑ "Occluding virtual content with people". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/occluding-virtual-content-with-people. Retrieved 2026-10-12.
- ↑ "Displaying a point cloud using scene depth". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/displaying-a-point-cloud-using-scene-depth. Retrieved 2026-10-12.
- ↑ "Creating a collaborative session". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/creating-a-collaborative-session. Retrieved 2026-10-12.
- ↑ "ARGeoTrackingConfiguration". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/argeotrackingconfiguration. Retrieved 2026-10-12.
- ↑ 20.0 20.1 "Verifying Device Support and User Permission". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/verifying-device-support-and-user-permission. Retrieved 2026-10-12.
- ↑ 21.0 21.1 "ARKitSession". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arkitsession. Retrieved 2026-10-12.
- ↑ "Setting up access to ARKit data". Apple Developer Documentation. https://developer.apple.com/documentation/visionos/setting-up-access-to-arkit-data. Retrieved 2026-10-12.
- ↑ "Create enhanced spatial computing experiences with ARKit". Apple Developer. 2024. https://developer.apple.com/videos/play/wwdc2024/10100/. Retrieved 2026-10-12.
- ↑ "What’s new in RealityKit". Apple Developer. 2025. https://developer.apple.com/videos/play/wwdc2025/287/. Retrieved 2026-10-12.
- ↑ "ARKitAnchorComponent". Apple Developer Documentation. https://developer.apple.com/documentation/realitykit/arkitanchorcomponent?changes=_3. Retrieved 2026-10-12.
- ↑ "Explore enhancements to visionOS object tracking". Apple Developer. 2026. https://developer.apple.com/videos/play/wwdc2026/283/. Retrieved 2026-10-12.
- ↑ "ARKit in iOS". Apple Developer Documentation. https://developer.apple.com/documentation/arkit/arkit-in-ios. Retrieved 2026-10-12.
- ↑ "Apple ARKit XR Plug-in: version 6.1.1". Unity Documentation. https://docs.unity3d.com/Packages/[email protected]/manual/index.html. Retrieved 2026-10-12.
- ↑ "Developing for ARKit". Epic Games Developer Documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/developing-for-arkit-in-unreal-engine. Retrieved 2026-10-12.
- ↑ "What’s new in Metal rendering for immersive apps". Apple Developer. 2025. https://developer.apple.com/videos/play/wwdc2025/294/. Retrieved 2026-10-12.
- ↑ Brown, Mike (2017-07-19). "The 12 Coolest Uses of iOS 11 ARKit Will Get Better With iPhone 8". Inverse. https://www.inverse.com/article/34260-12-cool-ios-11-arkit-uses-iphone-8-future. Retrieved 2026-10-12.
- ↑ Hayden, Scott (2017-07-17). "The 10 Coolest Things Being Built with Apple’s ARKit Right Now". Road to VR. https://www.roadtovr.com/10-coolest-things-built-apples-arkit-right-now/. Retrieved 2026-10-12.
- ↑ Cortés, Santiago; Solin, Arno; Rahtu, Esa; Kannala, Juho (2018). "ADVIO: An Authentic Dataset for Visual-Inertial Odometry". Proceedings of the European Conference on Computer Vision (ECCV). pp. 419-434. https://openaccess.thecvf.com/content_ECCV_2018/papers/Santiago_Cortes_ADVIO_An_Authentic_ECCV_2018_paper.pdf. Retrieved 2026-10-12.
- ↑ Marino, Emanuele; Bruno, Fabio; Barbieri, Loris; Lagudi, Antonio (2022-07-19). "Benchmarking Built-In Tracking Systems for Indoor AR Applications on Popular Mobile Devices". Sensors 22 (14): 5382. doi:10.3390/s22145382. Retrieved 2026-10-12.
- ↑ Kim, Jungha; Song, Minkyeong; Lee, Yeoeun; Jung, Moonkyeong; Kim, Pyojin (2022-07-14). "An Empirical Evaluation of Four Off-the-Shelf Proprietary Visual-Inertial Odometry Systems". arXiv preprint. arXiv:2207.06780. Retrieved 2026-10-12.
