Category
AR/VR

ARCore vs. ARKit: Which Is Better for Building Augmented Reality Apps?

Developers welcome the arrival of augmented reality SDKs by Google and Apple, but which of the two tech giants is leading the ARCore vs. ARKit race?

Apple and Google are squaring off in the race to make augmented reality a truly mainstream feature of mobile app development. Both tech giants have launched augmented reality development platforms in the hopes of cornering what could become a very lucrative market. But what does this mean to your enterprise if you are getting in on the AR act?

At the very least, you will surely be keen to learn how the two platforms compare. Is there a clear leader in the ARCore vs. ARKit competition, or is it purely a question of which mobile OS you plan to target with your app?

ARCore vs. ARKit: Why Should You Care?

ARCore and ARKit are platforms for augmented reality app development. ARCore is Google’s offering, while ARKit is brought to us by Apple. However, they are not the first such platforms to be released, nor are they the only ones that developers can choose from, so why should you get excited about their emergence?

Well, to begin with, augmented reality itself is an exciting technology, spawning a market that is forecast to become enormous over the next couple of years. In the high adoption scenario charted above, the augmented and virtual reality market could be worth nearly $30 billion by 2020.

Apple and Google are clearly prepared to bank on high adoption, as along with three other major tech/social media companies—Facebook, Amazon, and Snapchat—they have recently invested heavily in AR development tools.

AR Wars: A Catalyst for Technological Advance?

With all these tech leaders getting involved, it’s clear that augmented reality is moving from the hype stage into an era of practical application. Google and Apple are both taking it seriously, which likely sets the scene for further AR invention, innovation, and competition going forward. That alone should be sufficient cause for excitement about AR in general, and about ARCore/ARKit in particular.

If you are looking forward to creating your own mobile AR apps or adding AR elements to existing software, the SDKs released by Apple and Google are the ones likely to capture your attention at this point, making the ARCore vs. ARKit debate one worth diving into.

Augmented Reality Gets Easier to Achieve

Apple launched its ARKit SDK in the summer of 2017 and got the jump on Google in offering a platform-specific augmented reality tool. From that point on, any mobile app developer could create AR experiences for owners of Apple devices running iOS 11, as long as those devices are built around the A9, A10, or A11 processors.

In effect, ARKit mobile apps are compatible with any model of Apple phone from the iPhone 6s onwards. According to intelligence firm ARtillry, that should amount to about half a billion ARKit-compatible phones at the time of writing this article. 

As of February 2018, Apple’s exclusive position as a platform-specific AR tool provider ended, when Google brought its ARCore system out of beta, applying the technology to its own Pixel devices, along with a selection of other manufacturers’ flagship phones running Android 7.0 or 8.0.

The release of both SDKs should come as a breath of fresh air for developers, as each comes with implanted features native to their respective operating systems, easing the creation of AR mobile apps that harness the hardware aboard Apple or Android devices. Quite simply, the arrival of ARKit and ARCore means that AR mobile app development no longer requires a deeply specialized set of skills.

Need help choosing between ARCore and ARKit?

Fundamental Features of ARCore and ARKit

The fundamentals of the two SDKs are very similar, based on the three main requisites for useful augmented reality software: environmental understanding, motion tracking, and light estimation. Both ARKit and ARCore have them implemented, although their approaches differ slightly.

Motion Tracking

AR requires a device to be capable of tracking its position and orientation in its real-world surroundings. ARKit and ARCore both achieve this through a technology known as visual inertial odometry (VIO). VIO relies on data from a device’s motion sensor and camera to identify spatial movement across six axes. This allows virtual objects to remain accurately positioned in the real world, which is essential for an authentic AR experience.

Plane Detection

As well as knowing how to keep virtual objects in place, an augmented reality app must know what it’s placing them on. That’s where plane detection comes in. ARKit and ARCore apps can recognize the difference between horizontal and vertical planes in the device-camera’s field of view, so virtual items can be placed onto surfaces in a realistic way.

In ARCore, this capability is known as environmental understanding, while Apple prefers to call it scene understanding. Beyond the semantic variations though, there is little difference in the principles employed by the two SDKs.

Lighting Estimation

In order for an augmented reality experience to seem authentic, virtual objects should appear subject to the same lighting dynamics as the real-world scene in which they are placed. ARKit and ARCore solve this challenge through a process called lighting estimation, which analyses the ambient light sensed by a device’s camera to apply photorealistic rendering of virtual objects.

Aside from these fundamentals, each of the new AR development platforms has features that make use of proprietary technology. On the iPhone X, it’s the TrueDepth camera, and on Android devices, it’s the technology carried over from Google’s now-defunct Project Tango. It’s too early though to say how much of a difference these features will make in terms of setting one platform apart from the other.

Other Key AR Development Functions and Features

In addition to lighting estimation, motion tracking, and plane detection, any good augmented-reality SDK should have a few additional features integrated. As you might expect, neither ARKit nor ARCore disappoint in this regard. Both platforms meet the following important AR development criteria:

  • They incorporate 2D and 3D object tracking, which means that real-world objects can be used as markers to trigger augmented reality experiences.
  • They both make clever use of anchors, which prevent AR content from being lost if the device user wanders away from the area mapped by the app.
  • They can integrate with third-party tools, including the immensely popular Unity game platform.
  • They will support smart glasses once the hardware comes into the market.
  • They both support: world and facial tracking; geolocation and SLAM mapping technology; cloud and on-device marker storage.

Differences Between ARCore and ARKit

Of course, a list of features, while useful, does not make a comparison. And if you are considering the value of ARKit and ARCore for app development, you’ll be interested to know about the advantages and limitations of each.

Differences in capability between the two SDKs are quite subtle. Both tools allow a developer to create games or more utilitarian apps that nonetheless immerse the user in an AR experience to be remembered. The tracking, motion, and lighting technologies mean users won’t feel that they are simply looking at visual data overlaid on a camera screen, but will instead be pulled into a believable alternative world when using your AR app.

When it comes to mapping, ARCore has a distinct advantage, thanks to its ability to manage larger maps. Although both SDKs use sparse maps, like those in the image above, ARKit apps store only the most recently captured location data. Older data is discarded, limiting the stability with which a scene can be re-localized after the user has directed the camera away from it (as might happen if the user drops her phone or accidentally obscures the lens).

Another reported ARCore/ARKit difference is that when mapping a scene, Google tracks more feature points than Apple. This means the mapped area expands more quickly in ARCore apps. However, ARKit appears to be a little more accurate in differentiating between horizontal and vertical surfaces.

These small mapping issues aside, both platforms do a terrific job of juxtaposing virtual objects onto real-world scenes, placing them accurately and naturally, with no strange floating or dangling effects to mar the augmented reality experience.

Give Them a Try: Examples of ARCore and ARKit Apps

Naturally, end-users of AR apps will probably not care too much about which development tool has been used, but this comparison is aimed at developers and companies planning to engineer their own apps. If that includes you, then you’ll possibly want to test some apps created with both platforms to get a feel for the experience.

As ARCore has only been out of beta for a short while at the time of writing, you don’t currently have too many options for your try-out, but here are a few apps and demos you should be able to track down and test:

  • Google Maps Virtual Position: Lets you explore Google Maps Street View by walking forward in physical space.
  • Mobile AR Tourist Information: Point your camera at a sign or landscape feature and get AR tourist information such as walking or driving directions, details of local accommodation, images, and a wealth of other local data.
  • Flight Paths: Turn your tabletop into a real-world airport and see real aircraft flight paths floating around you in blue and purple hues.
  • Beer Pong AR: Just for a bit of fun, place virtual red cups on your table (or any flat surface) and enjoy a game of beer pong.

Having been around a while longer, and with a larger base of users, ARKit is behind a broad, fast-growing range of apps. As you can see from the chart above, games greatly outnumber all other types of ARKit app currently available, but if you want to explore a cross-section of ARKit’s creative capabilities, you might like to check out those listed below:

  • IKEA Place: This is IKEA’s catalog app, which lets you try items from the retailer’s furniture range before you buy, by placing their virtual representations in the real space of your home.
  • Fitness AR: If you are a user of the fitness website Strava, you can use the AR Fitness app to visualize your hikes, runs, or bike rides on virtual 3D maps, which are fully detailed, and include the actual terrain and landmarks that you’ll encounter in the real world.
  • Dance Reality: This app will teach you how to dance by placing footprints on your floor. Just step where the footprints are, follow the sequence as it changes and you will be dancing with the stars in no time… apparently.
  • The Machines: If Beer Pong is a bit too “real world” for you, then try out The Machines. It’s an AR game that generates a battlefield diorama on your living room floor (or anywhere) in which you can go to war with a squad of robot soldiers.

ARCore vs. ARKit: A Close Race So Far

If you want to build an AR app for business or consumer use, you’ll find both ARCore and ARKit to be perfectly suited to the task. The differences between them lie more in commercial dynamics than technical capability.

For example, ARKit has the advantage of greater exposure and reach, due to Apple’s vertical structure and the fragmented market in which its competitor operates. In July of 2017, Bloomberg reported that more than 80% of Apple mobile phones and tablets typically run on the latest OS version, while the same can be said of just 11.5% of Android devices.

On a technical level, apart from the slightly superior mapping capabilities of ARCore, and some inefficiencies in ARKit’s initiation process, there’s currently little to choose between the two SDKs in terms of performance.

Verdict: There’s No Front Runner… Yet!

In reality, you are unlikely to find yourself deciding between one SDK and the other purely on their merits, because you cannot build an app for Android users with ARKit, or for iOS owners with ARCore.

Therefore, your options will probably come down to working with both tools, or substituting one of them with a different SDK altogether. That’s unless of course, you choose to develop your app exclusively for one of the two mobile operating systems.

As time goes by and new updates arrive for each platform, we may start to see more of a performance divide. Both tools are in Version 1.0 right now, so it will be interesting to see if future innovations eventually create a significant AR advantage for one tech giant over the other. 

Content type
Blog
Still can't decide on your AR tech?
We'll help you out

WANT TO START A PROJECT?

It’s simple!

Please wait...