In 2019, it's very likely you already know what augmented reality (AR) is. Provided that I won't be wasting your time talking about how AR technology works. You can read about it here.
What I want to talk about is how two major market players, Apple and Google, interpreted AR through their development platforms, ARKit, and ARCore correspondingly. First, let's have a brief background check on both of the platforms.
ARKit by Apple
ARKit is a development kit for iOS apps. Apple introduced ARKit at WWDC'17, and almost immediately, it was available for developers worldwide.
As Apple's SVP of Software Engineering, Craig Federighi, said ARKit is 'the largest AR platforms in the world,' and by and large, I cannot disagree with him.
Since then ARKit got an upgrade to ARKit Version 2, and it now supports a wide range of Apple devices running on iOS 11 or higher starting from iPhone SE to iPhone Xs running on iOS 13. By the middle of 2018, AppStore featured applications made with ARKit in different categories: productivity, education, business, and most of all, games. The overall download of AR-applications has exceeded over 13 million times. No wonder, just take a look at one of the loveliest apps on AppStore in my personal chart, AR Dragon.
At WWDC'19, Apple announced that only iPhones and iPads that are powered by an A12 Bionic processor or newer support ARKit 3.
The latest and greatest ARKit features only run on iPhone XS, iPhone XS Max, iPhone XR, and the 11-inch and 12.9-inch 2018 iPad Pros. Meaning iPhone 6S and 5th generation iPad's owners won't be able to update their AR apps until they update their device. That is a significant restriction, but one that makes sense when you consider the power required by these new ARKit 3.0 features.
ARCore by Google
ARcore is a development kit for Android apps. By the time Apple launched its ARKit, Google already had some experience with AR technology. Tango, a so-called Google's AR platform, lasted almost 4 years since summer '14 to spring '18 but didn't enjoy the amount of hype ARKit did. Eventually, Google wrapped up Tango and launched a whole new AR SDK. On March 1, 2018, ARCore was officially released, and Tango was officially buried. However, the first stable version was released only in December '18.
One of the most popular applications for Android with ARCore is Google's Playground. A few words about this application - "Playground is a new mode in your camera that helps you create and play with the world around you. "
There's little known about the next ARCore, and I don't think that we see anything until the fall of 2019. You can follow ARCore on GitHub, check issues, release dates, and source code.
ARCore vs. ARKit in 2019
That's the exciting part, let's compare these technologies. You can guess they are unlikely to be fundamentally different in operation. ARKit and ARCore use visual-inertial odometry (VIO) - it is a difficult concept if you want to go deep into it, check out this 15 minutes tutorial for beginners or study this paper by Mohamed Aladem and Samir A. Rawashdeh.
In "simple" terms, Apple says, "This process (VIO) combines information from the iOS device's motion-sensing hardware with computer vision analysis of the scene visible to the device's camera."
Both technologies use the following features to integrate virtual content into the real world:
- Motion tracking - to track position in the real world.
- Environmental understanding - to understand different sizes, locations, angles, forms, points, and plans.
- Light estimation - to detect information about the lighting Obviously, there are differences in capability between ARKit and ARCore:
- Google's SDK tracks more feature points; it expands the mapped area more quickly, then ARKit.
- ARKit detects horizontal and vertical surfaces more accurately, then ARCore.
These differences are insignificant to an end-user, and you may not notice them at all. However, they may add some problems for developers working on the same applications and for iOS and Android.
Formats of AR content
As long as we perceive a three-dimensional world, we should augment it with three-dimensional elements or 3D models.
According to Apple, ARKit supported a lot of different 3D formats:.abc .usd(.usda, .usdc) .usdz .ply .obj .stl Additional formats may be supported as well, to make sure consult Apple Documentation.
USDZ(an extension for USD, a Pixar animation format) deserves a highlight for being a new 3D file format created in partnership with Pixar. Another format that's worthy attention is Collada (.dae), the most popular one.
ARcore supported the following formats: .obj .glTF .fbx Actually, for creating 3D models for ARKit and ARCore you can use same applications - the most popular is Blender and SketchUp providing different formats of 3D models - .obj, .glTF, .usdz, .dae
If you want to use the same models for iOS and Android, the best option for you is .obj format. There is one more way that might work, which is converting the Collada model to glTF. It shouldn't be difficult considering the number of online services and extensions for that, like cesiumjs or blackthread.
Cross-platform AR development with ARCore
ARCore has an impressive feature - you can use it on iOS devices! Yes, it isn't easy, but you can apply the same resources, same methods, and the same logic for both platforms.
In my opinion, it's better to create applications as natively as possible to use more features and have higher performance. If you only need a limited number of AR functionality and you have no time for the nativity, only then you could consider cross-platform development.
Present and future of AR
How often an ordinary person or even an "advanced user" of modern technology faces augmented reality? Almost never. At the moment, this is not our reality, pun intended.
Sadly, many AR experiences feel unnatural, to the point that you have to force yourself to use it and pretend it is very comfortable, while it isn't. Fingers crossed for the better, looking at you Apple. Right now right here, we do not need AR in our everyday life, and it looks like magic we still haven't found a use for.
The good news is, a lot of large companies are trying to improve their AR, which means AR should become part of our lives at some point. There are various AR games, apps for education, navigation, and retail.
The most promising area is entertainment, the perfect playground for the evolution of augmented reality, given the number of users and the creativity game development requires. Education is another field that should play a significant part in the future of AR technology. One of the greatest things about AR is the opportunity to see 3D models of things that are either too small or too big for a bare eye. That should help a lot with health sciences and areas where the visuals are essential.