Google and Apple are finally going head-on with each other in the AR world. Will Google win with its ARCore or Will ARKit surpass Google’s ARCore?
The most awaited battle between Google and Apple has finally started. The war of augmented reality SDKs. By now, you must have heard the term, ‘Google’s ARCore is the answer to Apple’s ARKit’, or some version of it, quite a lot. Is it? We are here to explore just that.
In this article, I am going to start with Augmented Reality, briefly explaining what it is and then move onto comparing Google’s ARCore and Apple’s ARKit with as much detail as possible, sidelining some key differences, similarities, and a general summary of both SDKs as Augmented Reality platforms for mobile devices.
What is Augmented Reality?
The word Augment means ‘to add’. So, augmented reality, on a very fundamental level, means to add something to reality itself. What is that “something”? Virtual images. By using an ‘AR application’ and some AR supported device, you can put virtual images or scenes on top of real world moments. This superimposed version of reality is called AUGMENTED REALITY and you view it through the screen of some device.
The AR application I mentioned above, obviously needs an underlying technology to bring it to life, and that is where our Augmented Reality SDKs, ARCore and ARKit, come to light. Moving on to ARCore first.
Let me explain that with an example picture.
Playing Pokemon Go
What Is Google’s ARCore?
ARCore is Google’s Augmented Reality SDK for building AR apps on Android devices. It was developed by building up on the data from Tango, Google’s first AR experiment. Read a detailed sketch-up on Google’s ARCore if you don’t already know what it is. Here are some main features of Google’s ARCore.
Motion tracking: With the help of your android device, ARCore tracks key points in the environment to establish and maintain positioning of objects.
Environmental understanding: ARCore understands the space around you by analyzing whether something is on the floor, a table, a chair or a wall.
Light estimation: Through this feature, ARCore adjusts the lighting of objects with reference to the environment they are placed in.
Using these three key features, ARCore processes and understands the environment and allows users to overlay life like virtual objects onto the real world.
That briefly sums up what the ARCore SDK is.
ARCore is specifically designed for Android devices and currently just available on a handful of Google recommended devices. However, there is a soon-to-be-released stable version that will make ARCore available to a million Android devices.
What Is Apple’s ARKit?
ARKit is Apple’s augmented reality platform for mobile devices. Apple recently integrated it as part of the iOS 11 release. You can check out the gritty details on ARKit for all, What is Apple’s ARKit.
Just like Google’s ARCore, ARKit also has three main features, Motion tracking, Plane estimation and lighting estimation, which are fairly similar, but a small difference lies in the way they perform these functions.
Google uses a process called COM, concurrent odometry and mapping to understand and map the world while Apple’s ARKit uses VIO, visual inertial odometry, to do the same thing.
At this point, you might be thinking that Apple revealed their ARKit first and yes it is available on more devices than Google’s ARCore BUT if you, for a second, think this makes ARKit the better “AR platform” of the two, you could not be more wrong. There are many factors at play here. Let’s compare…
Comparing ARCore VS ARKit
Before we move on to the actual performance comparison, Lets look at the device availability, ease of use and hardware, software integration of ARCore and ARKit.
ARKit is available now, to millions of iOS devices, while Google’s ARCore is restricted to a handful of few Google recommended devices. Why did Google do that?
Well, Samsumng’s S8 devices and Google’s Pixel phones are already calibrated in terms of camera performance and IMUs to work with Daydream, Google’s VR headset. Making ARCore available on these phones is Google’s way of leveraging on the Daydream sensor integration data combined with a ‘Tango-lite’ SDK.
Ease of use
This one is for you developers out there. To develop AR apps, you will first need to download these augmented reality SDKs. For ARCore just download the ARCore app file and get the specific ARCore SDK for your choice of development environment, preferably Android studio, Unreal or Unity.
However, when it comes to ARKit, it is a bit of a pickle. You need to download quite a few things to get started. And since it’s Apple, you can only use a Mac device to code in.
Apple’s hardware is without a doubt better than what Google has to offer. Google with its Pixel phone and Samsung’s galaxy phone is not far behind but close.
On the other hand, Google is slightly better on the software side. How?
ARCore’s mapping feature is better than ARKit’s mapping. Both, ARCore and ARKit, use sparse maps to generate world maps and understand spaces. ARCore can handle larger maps and recovers faster in generating a new map or updating it.
“GOOLGE EXPECTED TO HAVE DYNAMIC VIRTUAL SHADOWS AND REFLECTIONS, MAKING VIRTUAL CONTENT MORE REAL”
A Performance Comparison Between Arcore And Arkit
Okay, so we compared ARCore using Samsung’s Galaxy S8 and ARCore using iPhone 7s plus, both hero devices.
For starters, ARCore was able to initialize faster than ARKit. ARKit took a little bit longer, just a few seconds, to initialize. That is one point for ARCore.
Starting with the floor-mapping feature, ARCore showed a more rich coverage of the floor.
Remember the feature points I previously mentioned in my article, ARCore tracked more feature points as compared to ARKit. As we scanned around the room to include more area, we noticed that ARCore maps the area using an irregular polygon shape while ARKit used a perfect rectangle shape.
That meant nothing until we saw ARCore expanding its area more quickly than ARKit. ARKit, to our experience, tries to stay within the confined boundary of the rectangle, therefore, mapping less area while ARCore adds new area quicker because it is easier to expand an irregular shape.
That might also be the reason why ARKit is slow on tracking initially, but as you give it some time, and move around the room more, the tables are turned.
That brings us to the next point, Accuracy.
We noticed that ARKit was extremely better at recognizing walls and floors. As we let it gather more feature points, by moving around the room, ARKit’s mapped area was very accurate in differentiating between the floor and walls.
ARCore on the other hand, added too much of the surface area to the floor, including some of the wall space as floor space. Now as a developer, that is one the most important factors effecting the quality of your augmented reality app. One more point for ARKit here.
Moving on to the camera feed. You would expect ARKit to take the lead here, considering their prime quality hardware, but ARCore surprises yet again. This deduction might differ from phone to phone. We used S8 and iPhone 7s plus, both hero devices.
ARCore showed a very clear feed while ARKit showed a little darker feed. That would consequently affect the lighting feature as well, but we’ll get to that in a bit.
All right, on to comparing AR objects.
Both frameworks showed a perfect anchoring of AR objects on the floor. We even moved in closer and saw that the objects don’t give any ‘Floaty’ feeling or appear like a dangling object in mid air. Both objects were genuinely standing on the floor, with the right footing, just as you and I would.
Now comes the lighting. ARCore objects were very well light while ARKit objects appeared a little darker, again this could change if you use a different device. But on these phones, ARCore seems to take the lead.
Moving on to comparing the ‘world tracking’ feature. Remember I told you, that both these SDKs remember where you marked an area for AR object placement. Now the idea is, even if you move around, or jitter the camera, and then come back to the original field, the mapped area should remain the same. We put this feature to the test and to our surprise, ARKit was better. Initially both ARCore and ARKit seemed to be working perfectly fine, but then we panned around the room and jerked the camera vigorously and ARCore lost the area for a few seconds.
It did resume to the same state quickly but it did lose the area so that is one more point to ARKit.
So to summarize, ARKit is very accurate in tracking and differentiating between the walls and ceilings, but a little slower while ARCore tracks more features and is faster at initializing but not as accurate. Keep in mind, that ARCore was launched considerably later than ARKit.
ARCore and ARKit: Two tech giants fighting for the AR throne
ARCore is a Tango adaptation. Remember? It was built on the data and insights generated from the Tango Project. That makes ARCore more mature than ARKit. How?
ARCore is well tested. All the previous tests and diagnostics and findings collected in the Tango phase are what created ARCore. That is two years of R&D. It wouldn’t be wrong to say, ARCore is Tango without the depth camera hardware piece. ARKit in comparison to ARCore has spent less time in development inside Apple.
Apart from missing on the 3D depth data, ARCore has a giant list of features set handed over by Tango which will most definitely integrate into the stable version of ARCore.
So there is a slim chance that ARCore will surpass ARKit when it comes to software integration and quality.
On the other hand, when you talk about the hardware Apple has to offer, Google can’t beat that. Even with ARCore released for a million Android devices, Apple’s iPhone 8 surpasses them all. There is a chance by the time Google catches up with the “widely available” tagline, there will have been more technologies developed and competition created.
It is still too early to tell who will win the war between ARCore and ARKit but both the contenders will be neck and neck in this battle between the best AR platform.
That leaves us to the question.
Should You develop in ARCore or ARKit?
Simple, If you have an S8 or a Pixel, then go for ARCore. If you have an iOS 11 iPhone and a supported Mac, than go for ARKit. Don’t bother shifting over from either sides, just to try these AR SDKs. The thing is, at this moment, ARCore and ARKit are both in their early stages. They will mature and incorporate new features and functionalities over time. As a developer, it’ll benefit you more if you focus on building great AR apps, because sooner than later, there will come AR apps that will raise user expectations and creating a mediocre AR app won’t be enough.
ARCore and ARKit will be a constant learning curve for the developers community and the people using AR apps. So at this point, focusing on which platform to build AR apps is less important than focusing on what AR apps to build. Once you are a confidant developer, make your transition to ARCore or ARKit then.