Introduction to Cloud Anchors on Android

A Cloud Anchor is a special type of anchor that can be used to persist AR experiences in the real world. With the Cloud Anchors API, you can create interactive layers of digital information and anchor them to actual locations, designing experiences that can be shared over time by multiple people across many different devices. Cloud Anchors connect real world locations with digital content that anyone can access from compatible mobile devices. Both Android and iOS users can participate in the same experience and return to them again and again, even weeks or months later.

Anchors and Cloud Anchors

Cloud Anchors are anchors that are hosted on the ARCore Cloud Anchor service. This hosting enables users to share experiences in the same app. The basic guidelines for anchors also apply to Cloud Anchors.

Use cases for developing with the Cloud Anchors API

The Cloud Anchors API can help persist AR experiences in the real world and create shared experiences between users. The following are some ways you can use it in your own projects.

Persist AR experiences in the real world

Cloud Anchors enable one user to place an AR object in the physical environment and another to see the same object at the same place at a later time. For example, use Cloud Anchors to create virtual signs that help users find their way around train stations, leave virtual notes on their kitchen countertops for their friends, or redecorate their bedrooms with virtual posters.

Real-time collaborative experiences

Cloud Anchors also enable real-time collaboration between users. For example, users can play a virtual game of ping-pong on the coffee table, or paint a virtual mural together with their community.

Device compatibility

The Cloud Anchors API works on all ARCore supported devices.

How Cloud Anchors work

ARCore connects to the ARCore Cloud Anchor service to host and resolve Cloud Anchors, thereby enabling these shared experiences. This requires a working Internet connection.

Here’s a high-level picture of how hosting and resolving works:

  1. The user creates a local anchor in their environment.
  2. The anchor is hosted — ARCore uploads that local anchor’s data to the ARCore Cloud Anchor service, and the ARCore Cloud Anchor service returns a unique ID for that anchor.
  3. The app distributes that unique ID to other users.
  4. The anchor is resolved — Users whose devices have the unique ID can recreate the same anchor using the ARCore Cloud Anchor service.


To establish and host an anchor, ARCore uses a 3D feature map of the space surrounding that anchor. To obtain this feature map, the device's rear camera must map the environment in and around the center of interest from different viewing angles and positions before the host call. The ARCore Cloud Anchor service then creates a 3D feature map of the space, and returns a unique Cloud Anchor ID to the device.


When another user in the same environment points their device’s camera at the area where the Cloud Anchor was hosted, a resolve request causes the ARCore Cloud Anchor service to periodically compare visual features from the scene against the 3D feature map that was created. ARCore uses these comparisons to pinpoint the user's position and orientation relative to the Cloud Anchor.

What’s next