ARCore
Overview
ARCore is a software development kit (SDK) developed by Google that allows developers to create augmented reality (AR) applications. It is designed to work on a wide range of qualified Android phones running Android 7.0 (Nougat) and later. ARCore uses three key technologies to integrate virtual content with the real world as seen through a phone's camera: motion tracking, environmental understanding, and light estimation.
History
ARCore was first announced by Google in August 2017 as a successor to the company's earlier AR development tool, Project Tango. Unlike Tango, which required specialized hardware, ARCore is designed to work on most modern Android smartphones. As of December 2021, ARCore supports over 250 million devices worldwide.
Key Technologies
ARCore uses three key technologies to create a more immersive AR experience: motion tracking, environmental understanding, and light estimation.
Motion Tracking
Motion tracking allows the phone to understand and track its position relative to the world. ARCore uses a process called simultaneous localization and mapping (SLAM), which combines data from multiple sensors in the phone, including the camera and the inertial measurement unit (IMU), to estimate the pose (position and orientation) of the device as it moves through space.
Environmental Understanding
Environmental understanding allows the phone to detect the size and location of all types of surfaces, including horizontal, vertical, and angled surfaces. ARCore can detect flat surfaces like a table or the floor, and can also estimate the average lighting in the area around it.
Light Estimation
Light estimation allows the phone to estimate the environment's current lighting conditions. This allows developers to light virtual objects in ways that match their surroundings, making them appear more realistic.
Development
ARCore provides a set of APIs that developers can use to create AR experiences. These APIs are available for several development environments, including Java, Unity, and Unreal Engine.
Java
ARCore's Java SDK provides APIs for all of ARCore's features, including motion tracking, environmental understanding, and light estimation. It also includes APIs for rendering, such as the GLSurfaceView class, which developers can use to display AR content.
Unity
ARCore's Unity SDK provides a set of Unity components and scripts that wrap the underlying ARCore APIs, making it easier for Unity developers to create AR experiences. The Unity SDK also includes a set of example scenes that demonstrate how to use these components and scripts.
Unreal Engine
ARCore's Unreal Engine SDK provides a set of Unreal Engine plugins that wrap the underlying ARCore APIs, making it easier for Unreal Engine developers to create AR experiences. The Unreal Engine SDK also includes a set of example projects that demonstrate how to use these plugins.
Applications
ARCore has been used to create a wide range of AR applications, from games to productivity tools. Some notable applications include Pokémon Go, Google Maps, and IKEA Place.
Pokémon Go
Pokémon Go is a popular AR game developed by Niantic that uses ARCore to allow players to catch virtual Pokémon in the real world. ARCore's motion tracking and environmental understanding technologies enable the game to place Pokémon in the player's environment and track the player's movement relative to the Pokémon.
Google Maps
Google Maps uses ARCore to provide a feature called Live View, which overlays navigation directions on the real world. This feature uses ARCore's motion tracking and environmental understanding technologies to accurately place directions in the user's environment.
IKEA Place
IKEA Place is an AR application developed by IKEA that allows users to virtually place IKEA products in their homes. This application uses ARCore's motion tracking and environmental understanding technologies to accurately place virtual furniture in the user's environment.