What's new in ARCore

New and notable changes in ARCore.

What's new in ARCore v1.42.0

Snap to Tile in Geospatial Creator for Unity

A "Snap to Tile" button has been added to the ARGeospatialCreatorAnchor Editor Inspector panel. This button sets a Terrain or Rooftop anchor's Editor-only altitude value to the top of a 3D Tile geometry at the anchor's current latitude and longitude. Note that this property does not affect the behavior at runtime. This helps adjust the anchor's position in the editor to match its position at runtime.

What's new in ARCore v1.41.0

Geospatial Creator API

Geospatial Creator for Unity now includes support for creating and manipulating Geospatial Creator objects in Editor mode. The newly-available classes and APIs are described in the Geospatial Creator API Guide.

AR Foundation versions 5.x support (Beta)

ARCore Extensions for Unity's AR Foundation now supports AR Foundation versions 5.x. To migrate an existing project to AR Foundation, see the migration guide.

What's new in ARCore v1.40.0

Scene Semantics on iOS

The Scene Semantics API is now available in the ARCore SDK for iOS as well as in ARCore Extensions for Unity’s AR Foundation targeting the iOS platform. The Scene Semantics API enables developers to understand the scene surrounding the user in real-time, labeling pixels into 11 classes of outdoor components. See Introduction to Scene Semantics for more information.

Search for Points of Interest in Geospatial Creator for Unity

Geospatial Creator for Unity now supports a textual search to position the Photographic 3D Tiles view. See Search for Points of Interest in Geospatial Creator for more information.

What's new in ARCore v1.39.0

This release has no new features.

What's new in ARCore v1.38.0

This release has no new features.

What's new in ARCore v1.37.0

Scene Semantics

Scene Semantics provides richer details about the surrounding scene, making it easier to understand the world around the user. Scene Semantics runs an ML model on the camera image feed and provides a semantic image with each pixel corresponding to one of 11 labels of outdoor concepts.

See Introduction to Scene Semantics and the semantics_java sample app for more information.

Streetscape Geometry

Streetscape Geometry is a new ARCore Geospatial API that provides the geometry of buildings and terrain in an area around the user when the Geospatial API is enabled.

Android (Kotlin/Java)

See Streetscape Geometry Developer Guide (Kotlin/Java). Additionally, the geospatial_java sample app has been updated to include Streetscape Geometry.

Android NDK (C)

See Streetscape Geometry Developer Guide (C) for more information.

Unity (AR Foundation)

See Streetscape Geometry Developer Guide (Unity) for more information.

iOS

See Streetscape Geometry Developer Guide (iOS) for more information. Additionally, the GeospatialExample app has been updated to include Streetscape Geometry.

Rooftop anchors

Rooftop anchors are a new Geospatial anchor type that helps you anchor content to a rooftop.

Android (Kotlin/Java)

See Geospatial anchors (Java). Additionally, the geospatial_java sample app has been updated to include Rooftop anchors.

Android NDK (C)

See Geospatial anchors (C) for more information.

Unity (AR Foundation)

See Geospatial anchors for more information. Additionally, the Geospatial sample has been updated to include Rooftop anchors.

iOS

See Geospatial anchors (iOS) for more information. Additionally, the GeospatialExample app has been updated to include Rooftop anchors.

Geospatial Depth

When both the Depth API and Streetscape Geometry modes are enabled in an ARCore session in areas with VPS coverage, the generated depth images are improved using Streetscape Geometry. Streetscape Geometry is integrated into each generated depth image out to a range of 65.535 meters. No changes are needed when calling the Depth API to see this benefit.

Android (Kotlin/Java)

See Geospatial Depth (Java) for more information.

Android NDK (C)

See Geospatial Depth (C) for more information.

Unity (AR Foundation)

See Geospatial Depth (C) for more information.

iOS

Scene Semantics is currently not available for iOS.

Vulkan rendering support

ARCore now provides Vulkan rendering support by exposing the camera image through an AHardwareBuffer. You can use this Hardware Buffer by binding it to a VkImage.

See Rendering your ARCore application using Vulkan and the hello_ar_vulkan_c sample app for more information.

Android (Kotlin/Java)

Android NDK (C)

Unity (AR Foundation)

Vulkan rendering is currently not available for Unity using AR Foundation.

Electronic Image Stabilization (EIS)

You can configure ARCore to use Electronic Image Stabilization, which smooths camera frames for a more fluid user experience.

See Enabling Electronic Image Stabilization and the hello_eis_kotlin sample app for more information.

Android (Kotlin/Java)

Android NDK (C)

Unity (AR Foundation)

EIS is currently not available for Unity using AR Foundation.

iOS

EIS is currently not available for iOS.

ARCore async APIs

This release introduces new ARCore async APIs to improve ergonomics when working with asynchronous operations, following the Future and Promise paradigm.

Android (Kotlin/Java)

Android NDK (C)

Unity (AR Foundation)

iOS

What's new in ARCore v1.36.0

Swift Package Manager support on iOS

The ARCore SDK for iOS now officially supports Swift Package Manager. See Enable AR in your iOS app for instructions on how to integrate with ARCore using Swift Package Manager.

What's new in ARCore v1.35.0

Geospatial pose accuracy replaces heading with yaw

All Geospatial poses now expose their orientation accuracy of the yaw rotation, replacing heading accuracy.

Additional changes and updates

See the release notes for other changes, bug fixes, and performance improvements:

What's new in ARCore v1.34.0

Check if Geospatial capabilities are available in the device’s current location

The Geospatial API can now check for Visual Positioning System (VPS) availability at a specified horizontal position at runtime. This API can be used without an active AR session: for example, to present an "Enter AR" button only when VPS is available.

Geospatial pose orientation

Geospatial poses now expose their orientation in 3D space.

Geospatial pose conversions

Geospatial poses can now be converted to and from world-space (AR) poses.

To get the Geospatial pose from an AR pose:

To get the AR pose from a Geospatial pose:

Geospatial poses obtained from these functions have a heading value set to zero. Instead, use the following:

Additional changes and updates

See the release notes for other changes, bug fixes, and performance improvements:

What's new in ARCore v1.33.0

New Cloud Anchors endpoint

  • To use Cloud Anchors, you must now enable the ARCore API instead of the older ARCore Cloud Anchor API, which is now deprecated. To support older app versions, you may enable both while making the transition. Apps built with ARCore SDK 1.32.0 and lower will target the older API, while apps built with ARCore SDK 1.33.0 and higher will target the new API. Note the following:
    • The new API uses the domain name arcore.googleapis.com instead of arcorecloudanchor.googleapis.com.
    • If you are using an API Key which is restricted by API, you must allow the ARCore API.
    • If you send requests to the ARCore Cloud Anchor Management API from your backend, you must also change the domain name to arcore.googleapis.com, after enabling the ARCore API.
    • The old API/endpoint will continue to be supported through August 2023.
    • See ARCore 1.33 Cloud Anchor endpoint changes for more details.

Terrain anchors

  • The Geospatial Terrain anchor API creates an anchor at a specified horizontal position and altitude relative to the horizontal position’s terrain.

Additional changes and updates

See the release notes for other changes, bug fixes, and performance improvements:

What's new in ARCore v1.32.0

This release has no new features.

Android and Unity (AR Foundation) for Android

  • ARCore's targetSdkVersion has been updated to Android API level 32. If your app does not specify a targetSdkVersion, your app's targetSdkVersion will become 32 due to manifest merging.
    • Android SDK: Specifying a targetSdkVersion in your project's build.gradle or AndroidManifest.xml will override ARCore's targetSdkVersion value.
    • AR Foundation for Android: Specifying a Target API Level in your Unity project's Project Settings > Player > Android > Other Settings will override ARCore's targetSdkVersion value.

Additional changes and updates

See the release notes for other changes, bug fixes, and performance improvements:

What's new in ARCore v1.31.0

ARCore Geospatial API

The new ARCore Geospatial API utilizes data from Google Earth 3D models and Street View image data from Google Maps to enable your app for immersive, global-scale, location-based augmented reality experiences.

See the Introduction to the ARCore Geospatial API for platform-specific developer documentation, and to get started with the new Geospatial API.

Long-range depth

The ARCore Depth API is now optimized to include longer-range depth sensing, increasing the range of representable depth observations. All 16-bits of the depth image are used, providing a maximum range of 65535 millimeters. Previously only 13-bits were populated, with a limit of 8191 millimeters.

See the Changes to Depth for platform-specific developer documentation, and to understand the changes to the Depth API.

Platform-specific notes

Android

New ARCore Geospatial APIs
  • Java

    • Earth provides localization ability in Earth-relative coordinates.
      • Earth.createAnchor() creates a new Anchor at the specified location and orientation relative to the Earth.
    • Earth.Earthstate describes the current state of Earth, including its TrackingState.
    • GeospatialPose describes a specific location, elevation, and compass heading relative to Earth.
  • C

    • ArEarth provides localization ability in Earth-relative coordinates.
      • ArEarth_acquireNewAnchor() creates a new Anchor at the specified location and orientation relative to the Earth.
      • ArEarthState describes the current state of ArEarth, including its ArTrackingState.
    • ArGeospatialPose describes a specific location, elevation, and compass heading relative to Earth.
Updated ARCore Depth APIs
  • Java

    • The Depth API function calls have changed:
      • Frame.acquireDepthImage to Frame.acquireDepthImage16Bits.
      • Frame.acquireRawDepthImage to Frame.acquireRawDepthImage16Bits.
      • The output image formats for both calls have changed from android.graphics.ImageFormat#DEPTH16 to android.hardware.HardwareBuffer#D_16.
      • Depth is still represented as a 16-bit integer in units of millimeters, but now all 16-bits are used to represent depth, allowing for a maximum expressable range to go from 8191mm to 65535mm.
    • The Depth API function calls Frame.acquireDepthImage and Frame.acquireRawDepthImage are deprecated. Please use Frame.acquireDepthImage16Bits and Frame.acquireRawDepthImage16Bits instead.
  • C

    • The Depth API function calls have changed:
      • ArFrame_acquireDepthImage to ArFrame_acquireDepthImage16Bits.
      • ArFrame_acquireRawDepthImage to ArFrame_acquireRawDepthImage16Bits
      • The output image formats for both calls have changed from AR_IMAGE_FORMAT_DEPTH16 to AR_IMAGE_FORMAT_D_16.
      • Depth is still represented as a 16-bit integer in units of millimeters, but now all 16-bits are used to represent depth, allowing for a maximum expressable range to go from 8191mm to 65535mm.
    • The Depth API function calls ArFrame_acquireDepthImage and ArFrame_acquireRawDepthImage are deprecated. Please use ArFrame_acquireDepthImage16Bits and ArFrame_acquireRawDepthImage16Bits instead.

Unity (AR Foundation)

New ARCore Geospatial APIs:

  • AREarthManager provides localization ability in Earth-relative coordinates.
  • GeospatialPose describes a specific location, elevation, and compass heading relative to Earth.
  • ARGeospatialAnchor provides an anchor for game objects in your scene, specified at a location and orientation relative to the Earth.

iOS

New ARCore Geospatial APIs:

Other changes

See the release notes for other changes, bug fixes, and performance improvements:

What's new in ARCore v1.30.0

This release has no new features.

Android

  • Annotated API return values with @NonNull and @Nullable.
  • Updated the build tool versions used for building samples: Gradle to 7.0.2 and Android Gradle plugin to 7.0.4. Upgrading these tools is not required for existing ARCore applications. For new features, known issues, incompatibility information, see Android documentation on Android Gradle plugin.

Unity (AR Foundation)

iOS

  • Various bug fixes and performance improvements.

What's new in ARCore v1.29.0

This release has no new features.

Android

Unity (AR Foundation)

  • The ARCore Extensions package now depends on ARKit XR Plugin to ensure that the installed AR Foundation version is compatible with the ARKit XR Plugin version. This fixes a compile error when installing ARCore Extensions on Unity 2019.x and enabling the ARKit XR plugin.
  • ARCore Extensions project settings has been moved from Project Settings > XR > ARCore Extensions to Project Settings > XR Plug-in Management > ARCore Extensions.
  • ARCoreExtensionsConfig, ARCoreExtensionsCameraConfigFilter, ARCoreRecordingConfig have been moved from Create > XR > ARCore Extensions to Create > XR menu.

iOS

  • Various bug fixes and performance improvements.

Complete release notes

What's new in ARCore v1.28.0

What's new in ARCore v1.27.0

This release has no new features. See the following release notes for various bug fixes and performance improvements.

In addition to various bug fixes, this release included the following.

Sample apps in Kotlin

What's new in ARCore v1.26.0

This release adds the following notable changes:

Additional changes and updates

See the following release notes for additional bug fixes and other breaking changes.

What's new in ARCore v1.25.0

This release has no new features. See the following release notes for various bug fixes and performance improvements.

What's new in ARCore v1.24.0

This release adds the following notable changes:

  • A new Raw Depth API that provides a depth image without image-space filtering
  • Custom data track recording capability to the Recording & Playback API
  • The ability to conduct Depth hit-tests

Raw Depth

The Raw Depth API provides depth data for a camera image that has higher accuracy than full Depth API data, but does not always cover every pixel. Raw depth images, along with their matching confidence images, can also be further processed, allowing apps to use only the depth data that has sufficient accuracy for their individual use case.

Developer guides:

Custom track recording

The new custom data track capability in the Recording & Playback API allows you to add custom data to an ARCore frame during recording and retrieve that same data from the frame during playback.

Developer guides:

Depth hit-tests

Previously, hit-tests could only be conducted on detected planes, limiting locations to large, flat surfaces. Depth hit-tests take advantage of both smooth and raw depth information to provide more accurate hit results, even on non-planar and low-texture surfaces.

Developer guides:

Additional changes and updates

See the following release notes for additional bug fixes and other breaking changes.

What's new in ARCore v1.23.0

Pending dual camera support

Support for dual camera is being rolled out in the coming weeks. See the supported devices page for more information.

New debugging tools

By sending a broadcast intent, developers can enable:

Hosting and resolving Cloud Anchors

AR-enabled apps built using ARCore SDK 1.11.0 or earlier are no longer able to host or resolve Cloud Anchors.

Apps built with ARCore SDK 1.12.0 or later are unaffected. Their use of the ARCore Cloud Anchor API is covered by the deprecation policy.

Additional changes and updates

See the following release notes for additional bug fixes and other breaking changes.

What's new in ARCore v1.22.0

This release adds new Recording and Playback APIs and Camera Config Filter APIs for ARCore Extensions for AR Foundation. See the ARCore Extensions complete release notes for details.

Additional changes and updates

See the following release notes for additional bug fixes and other breaking changes.

What's new in ARCore v1.21.0

This release adds new Recording and Playback APIs for Android, Android NDK, and Unity.

Recording and Playback

With the Recording and Playback APIs, you can record video and AR data once within a given environment and use that content to replace a live camera session for testing purposes. ARCore saves recorded sessions to MP4 files that contain multiple video tracks and other miscellaneous data on the device. You can then point your app to use this data in place of a live camera session. This allows you to replay that content indefinitely to try out different AR effects without having to return to the field.

For more details:

What's new in ARCore v1.20.0

This release adds the following notable changes:

New support for persistent Cloud Anchors

Prior to ARCore v1.20, Cloud Anchors could only be resolved for up to 24 hours after they were first hosted. With persistent Cloud Anchors, you can now create a Cloud Anchor with a time to live (TTL) between one and 365 days. You can also extend the lifetime of the anchor after it is already hosted using the Cloud Anchor Management API.

Use of persistent Cloud Anchors is covered by the new Cloud Anchors deprecation policy.

Additional changes and updates

See the following release notes for additional bug fixes and other breaking changes.

What's new in ARCore v1.19.0

This release adds the following notable changes:

Instant Placement

The Instant Placement API allows the user to place an AR object on the screen without having to wait for ARCore to detect surface geometry. Object placement is refined in real time as the user moves further around the environment. Once ARCore detects the correct pose in the region where the AR object is placed, the white object automatically updates to be pose-accurate, and becomes opaque.

The following clip shows a virtual Android figure on a real-world table. The figure is white and much smaller when first placed. After ARCore refines its calculations of the scene dimensions, the figure jumps to a more accurate position. This may result in a difference in the perceived "size" of the object.

For more details:

What's new in ARCore v1.18.0

This release adds the following notable changes:

Depth API

On depth-supported devices, the Depth API uses the ARCore-supported device’s RGB camera, or active depth sensor if available, to create depth maps. You can then use the per-pixel depth provided by a depth map to make virtual objects accurately appear in front of or behind real world objects, enabling immersive and realistic user experiences.

For example, the following images show a virtual Android figure in a real space containing a trunk beside a door. The Depth API properly occludes the figure behind the edge of the trunk.

For more details:

What's new in ARCore v1.17.0

Notable in ARCore SDK for Android

See also the Android SDK for Android complete release notes.

Notable in ARCore SDK for Unity

See also the ARCore SDK for Unity complete release notes.

Notable in ARCore SDK for iOS

  • The binary size of the Cloud Anchors SDK has significantly decreased.

  • Bitcode is now supported for Augmented Faces.

See also the ARCore SDK for iOS complete release notes.

What's new in ARCore v1.16.0

Notable in ARCore SDK for Android and Sceneform SDK for Android

This release adds the following notable changes:

See also:

Notable in ARCore Extensions for AR Foundation

This release adds the following notable changes:

  • AR Foundation's XRCameraConfiguration is extended with methods that let you choose the appropriate camera configuration based on the criteria you want. These methods include GetTextureDimensions(), GetFPSRange(), and GetDepthSensorUsages(). Read detailed instructions.

  • Unity 2019.3.0f6 is now the minimum recommended version for ARCore Extensions. AR Foundation 3.1.0-preview.6 requires Unity version 2019.3 or later.

  • Unity now uses the terms Anchor, Cloud Anchor, and Cloud Anchor ID in their cross-platform AR API. The documentation for ARCore Extensions has been updated to reflect this.

See also:

Notable in ARCore SDK for Unity

This release adds the following notable change:

  • Most devices now return additional supported camera configurations with lower GPU texture resolutions than the device's default GPU texture resolution. (See ARCore supported devices for details.) These expanded GPU resolutions are available via the ARCoreCameraConfigFilter API.

See also:

ARCore SDK for Unity complete release notes

What's new in ARCore v1.15.0

Notable in ARCore Extensions for AR Foundation

This release adds the following notable changes.

  • Added CloudAnchors sample showing how to create shared AR experiences for both Android and iOS. See instructions for Android or iOS.

  • Unity 2019.2.17f1 is now the minimum recommended version to use with ARCore Extensions.

ARCore Extensions complete release notes

Notable in ARCore SDK for Unity

This release has the following known issues.

  • Instant Preview may freeze Unity when using Android 9 and a USB 3 cable. To remedy, update to Android 10 or use a USB 2 cable.

  • Instant Preview may fail to display on device when Unity's game view resolution is too high. To remedy, lower Unity's game view resolution in the Editor.

ARCore SDK for Unity complete release notes

Additional changes

See the following release notes for additional bug fixes and other breaking changes.

What's new in ARCore v1.14.0

This release adds the following notable changes.

What's new in ARCore v1.13.0

This release adds the following notable changes.

See the following release notes for additional bug fixes and other breaking changes.

What's new in ARCore v1.12.0

This release adds the following changes:

  • Addition of the Augmented Faces feature to iOS. For more information, see this overview, quickstart, and developer guide.

  • Support for using ARCore Extensions for Unity's AR Foundation to build Android apps with Cloud Anchors.

  • The following changes to Cloud Anchors:

    • To comply with our updated privacy requirements for using ARCore SDKs 1.12 or later, you must disclose the use of Cloud Anchors prominently in your application by including the following text, as well as a link to learn more, on a notice screen: “To power this session, Google will process visual data from your camera.” You can do this by implementing the recommended user notice flow available in our Cloud Anchor sample apps.

    For more details, refer to User privacy requirements.

For more details on Cloud Anchors:

What's new in ARCore v1.11.0

This release adds the following changes:

  • The ARCore service has been renamed to Google Play Services for AR. On Google Play devices, it is now distributed as part of Google Play Services.

  • ARCore's camera configs target 60 fps on supported devices and prioritizes using the depth sensor on devices that have one. You can use new camera config filters to limit the camera capture frame rate to 30 fps, prevent ARCore from using a depth sensor, or filter based on both options.

For more details on camera configs:

What's new in ARCore v1.10.0

This release adds new Environmental HDR lighting estimation capabilities to the Lighting Estimation API for Android, Android NDK, and Unity.

These APIs use machine learning to analyze the input camera image and estimate environmental lighting. You can use this lighting estimation data to render extremely realistic lighting, including a primary directional light, shadows, ambient lighting, specular highlights and reflections on virtual objects. The result is virtual content that feels more realistic.

For more details:

What's new in ARCore v1.9.0

New in ARCore SDK for Android

This release adds these new APIs and features:

  • Scene Viewer is an immersive viewer that enables AR experiences from your website. It lets Android mobile device users easily place, view, and interact with web-hosted 3D models in their environment.

  • New Augmented Images features:

    • ARCore now tracks moving Augmented Images. Examples of moving images are an advertisement on a passing bus or an image on a flat object held by a user as they move their hand around.

    • After an image has been detected, ARCore is able to continue tracking the image's position and orientation, even if the image has temporarily moved out of the camera view.

    • Use AugmentedImage#getTrackingMethod() (Java) or ArAugmentedImage_getTrackingMethod() (NDK) to determine whether the Augmented image is currently being tracked by the camera (FULL_TRACKING), or is being tracked based on its last known position (LAST_KNOWN_POSE).

  • Cloud Anchors documentation now includes a more detailed explanation of how anchors are hosted and resolved.

Complete release notes

New in ARCore SDK for Unity

  • New Augmented Images features:

    • ARCore now tracks moving Augmented Images. Examples of moving images might be an advertisement on a passing bus or an image on a flat object held by a user as they move it around.

    • After an image has been detected, ARCore is able to continue tracking the image's position and orientation, even if the image has temporarily moved out of the camera view.

    • The new AugmentedImage.GetTrackingMethod() API enables your app to determine whether the Augmented image is currently being tracked by the camera (FullTracking), or is being tracked based on its last known position (LastKnownPose).

  • Cloud Anchors documentation now includes a more detailed explanation of how anchors are hosted and resolved.

Complete release notes

New in ARCore SDK for iOS

Complete release notes