

Instant Placement overview for Android NDK

The Instant Placement API allows the user to place AR objects instantly, without having to first move their device to allow ARCore to establish full tracking and detect surface geometry.

After the user has placed an object, its pose is refined in real time as the user moves through the environment. Once ARCore is able to determine the correct pose in the region where the AR object has been placed, it updates the object's pose and tracking method.

The following clip shows a virtual Android figure on a real-world table. The figure is initially placed using an estimated pose, which is indicated by its white color. Once an accurate pose can be determined, the figure turns orange and uses the new, accurate pose. The sudden change in pose affects the apparent "size" or perceived scale of the object.

Instant Placement supports screen space tracking with approximate distance, automatically switching to full tracking once the Instant Placement point is anchored in the real world. Retrieve the current pose with ArInstantPlacementPoint_getPose(). Get the current tracking method with ArInstantPlacementPoint_getTrackingMethod().

Although ARCore can perform Instant Placement hit tests against surfaces of any orientation, hit results will always return a pose with +Y up, against the direction of gravity. On horizontal surfaces, hit tests return accurate positions much faster.

CPU utilization and performance considerations

When Instant Placement is enabled, ARCore consumes additional CPU cycles. If performance is a concern, consider disabling Instant Placement when it's not required by your AR experience. This will save battery life and improve thermal performance.

For additional information, see performance considerations.

Next steps

Start using the Instant Placement API in your own apps. To learn more, see: