Updated April 2020
In 2020, 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. Advanced features in ARKit 3 are limited to devices with A12 Bionic chip variants or better.
Currently, the A12 Bionic powers Apple's iPhone XR, iPhone XS and iPhone XS Max, while the more robust A12X Bionic is found in the 11-inch iPad Pro and third-generation 12.9-inch iPad Pro. 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. In 2020, the number of AR users is estimated around 1.7 billion.
No wonder, just take a look at one of the loveliest apps on AppStore in my personal chart, AR Dragon.
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 from 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. "
You can follow ARCore on GitHub, check issues, release dates, and source code.
ARCore vs. ARKit in 2020
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.
The last updates gave ARKit several advantages:
- People Occlusion
- Motion Capture
- Simultaneous Front and Back Camera
- Multiple Face Tracking
- Collaborative Sessions
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.
If you'd like to hire us for your project, drop us a line here.