A new set of APIs for Unity promise to make it easier for developers to publish apps that support both ARKit and ARCore.
AR Foundation allows developers to leverage the common features, such as plane detection and world tracking, found in the mobile AR toolkits. Available in Unity 2018.1 and higher, AR Foundation is a part of Unity's Package Manager.
"Unity has always been at the forefront of handheld AR development and we've supported ARCore and ARKit from the start," wrote Bradley Weiers, AR/VR technical product manager, and Michael Durand, lead AR/VR software engineer, in a Unity blog post. "But with AR Foundation and the software architecture it leverages, we can now offer developers a common API which supports core functionality for ARCore, ARKit, and future platforms."
The AR functionalities that AR Foundation currently supports include surface plane detection, depth data point clouds, device position and orientation tracking, content scaling utilities, raycasting against plane and depth data, reference points for anchoring virtual objects, pass-through rendering, and average color temperature and brightness estimates.
The company plans to continue to add new functionality, in line with those recently announced by Google and Apple. Unity debuted its aspirations for cross-platform compatibility via the experimental ARInterface API at Unite Austin 2017.
"We're optimistic about the future of both handheld AR and wearable AR and will continue investing in platform support and developer tools as the technology evolves and the market for AR grows," wrote Weiers and Durand.
A sample project is available on Github for developers to get started.
With some common ground established between ARKit and ARCore (at least until ARKit 2.0 is available to the public), app developers can now more easily launch apps with AR capabilities on iOS and Android simultaneously.
AR Foundation will likely make it easier for developers to support both platforms and, considering Unity's prominence in AR development, hopefully will close the gap between platform-exclusive app updates and launches.