Augmented Reality
January 8, 2021
5 minutes

Augmented Reality Guide

by

Melanie Leon

Ultimate AR Comparison Guide: ARKit vs ARCore vs Vuforia vs AR Foundation

Last Updated:

Every year we get more and more signs for just how big the augmented reality (AR) market is going to be within the next few years. Whether these signs are Apple’s AR hiring spree, increasing needs in maintenance scenarios, or vague hints from Facebook founders, we’re catching wind of them.

According to major players such as one of the most popular interactive development platforms, Unity3D, AR revenue is expected to surpass VR revenue. Given that every modern smartphone is an AR device by default, these major players are probably right.

The AR market was worth around $3.5 billion in 2017 and it is estimated to reach a mighty $198 billion by 2025. Building and virtual content and designing new AR experiences of the future sounds like a safe bet!

The question is: “When will you start developing AR applications yourself?”

If the answer is “now,” which it should be, the next question is “What tools should we use?” or before that "what software is used for augmented reality" anyway?

Well, this is exactly the question this guide answers.

The AR development industry is highly competitive with major tech companies amply investing into their own AR software development kits (SDK). Apple released their ARKit back in 2017, and just one year later Google presented ARCore. There are four major AR SDKs today: ARKit, ARCore, Vuforia and AR Foundation.  All SDKs are integrated in Unity game engine (make sure you have the last version of Unity) and Unreal Engine 4.

Both game engines (Unity and Unreal) are the most popular choices for XR development because of their freemium nature and sheer capabilities. With SDKs like the ones mentioned here - you are deciding for which use and reality platform you'd want to develop your next project. In this guide we are addressing AR development options only. You can also think of the SDK like a plugin with which you expand the capabilities of a base software (or DLC for your favorite game where you get new levels and characters).

The development principles for augmented reality are in most use cases similar to virtual reality development. Most of the principles stays the same however, with AR you have to take into the equation that the user sees the real world along with the super-imposed visual data.

The AR applications are developed for mobile devices which can be your iOS or Android device or more sophisticated AR headsets used in enterprise/business solutions. In that case you would be developing an app for HoloLens 2, Magic Leap or upcoming AR headsets.

In this article, we’ll talk in detail about these powerful tools, Unity’s growing AR Foundation platform, and one of the oldest AR development kits on the market, PTC’s Vuforia. You’ll learn about core features of every development kit, their advantages, and drawbacks.

It’s our hope that this guide will help you get into AR development as soon as possible, and make an informed decision on which tool fits you best.

Try our free On-Demand AR Workshops

ARKit 3

What is ARKit?

ARKit is a set of tools created by Apple to aid developers in creating augmented reality applications for iOS devices. 

Let’s first address the elephant in the room: with ARKit you can only develop AR applications for iPhones and iPads. More specifically, iPhones starting with iPhone 6s and iPads starting with iPad Pro. 

While this may seem disappointing, there are at least three reasons why it’s not:

  • Reason #1: You can still use ARKit while developing for other platforms using Unity’s AR Foundation framework. We’ll discuss that one later in this article.
  • Reason #2: AppStore is more commercialized. Even though there are more Android gadgets in the world, Apple users spend 1.9 times more in the AppStore than on Google Play Store Market. 
  • Reason #3: Given that Apple software is closely tied with Apple hardware, there might be less friction when you’re developing with ARKit for iOS devices. 

ARKit was released with IOS 11 in 2017. Back then, when developing AR apps, you were supposed to use Apple’s SceneKit development framework, upon which the first version of ARKit was built. 

Given that SceneKit was released in 2012, long before the rise of AR, it was less efficient for strictly-AR applications and more advanced game engines such as Unity. However, it did the job for a while and most developers used it to add AR experiences to their 3D iOS applications.

Recently, a lot has changed. While SceneKit received almost zero updates during the last year, just several months ago, Apple released a third version of ARKit with a new AR-only framework RealityKit.

ARKit 3 comes with several new features, such as:

  • People occlusion: 3D AR content realistically passes behind and in front of people in the real world

Apple Developer on iPad

Image from developer.apple.com

  • Tracking up to three faces at a time
  • Motion capture: use poses and gestures as an input to the AR application, creating content that interacts with human movements directly


Another prominent feature of ARKit 3, is the Reality Composer. Simply put, Reality Composer is a visual tool that lets you quickly add 3D objects into scenes without excessive coding or modelling. 

With Reality Composer you can create quick AR prototypes by adding AR content into your applications.

How To Use RealityKit and Reality Composer

It’s worth noting that there’s no backwards compatibility between the SceneKit and RealityKit frameworks. So, if you already have been developing AR applications using SceneKit, you’ll have to re-create your project in RealityKit from scratch. 

Thankfully, both RealityKit and Reality Composer were developed by Apple to simplify AR-development and not make it harder. 

If you need 3D models to test your ARKit project with, download them from Apple’s AR Quick Look library.

AR Quick Look is a feature of ARKit that allows you to open 3D models using native Apple applications such as Safari, Messages, Mail, News, and Note. Quick Look then put those 3D models as AR objects inside a live view of your physical environment.

smartphone vase on table

Source Link

These 3D models should have a .usdz file format, but you can convert any .obj 3D models using the XCode converter command xcrun usdz_converter

You can also use Apple’s recently released Reality Converter. This software allows you to convert, view, and customize .obj, .gltf, and .usd files into USDZ 3D objects on macOS.

Below is a tutorial you can follow to create a basic AR application using Reality Composer, RealityKit, and AR Quick Look library.

Examples of ARKit Applications In Use

There are currently thousands of applications that were developed using ARKit on AppStore. Although almost half of them are games, some widely popular projects that use ARKit improve education processes in schools, enhance stories in popular magazines, and can even help you choose furniture. 

Below are some of the most popular AR applications developed using ARKit.

Shopping

Perhaps one of the most often cited and popular applications of AR was created by the Swedish furniture giant IKEA. 

IKEA Place

IKEA Place allows you to place a 3D model of a furniture item directly into the room where you want to put it. This model helps customers see whether the piece will fit and match their apartment or house before deciding whether or not to purchase it.

Not only does IKEA use AR to improve the shopping experience, Amazon and Target also developed their own iOS applications.

Interactive Storytelling

Interactive storytelling is one of the most common uses of AR that was employed by several major publications, including The New York Times and Washington Post, by putting interactive AR content directly into stories.

To that end, New York Times uses ARKit for their iOS application that was developed in 2018, which has since received a round of updates and ramifications. 

At first, the application was primarily about generating 3D models in the reader’s immediate environment. For example, if you were to read a sports story about skating, you could use your mobile phone to place a 3D model of a skater into your room:

But then, the AR project has gained traction and nowadays publications seem to be constantly looking for new ways to advance storytelling with augmented reality. 

Below is a demonstration of one of the projects in the works: an addition of AR content to a real, physical location in the form of a history guide.

AR history guide

Summary

ARKit is a robust AR development toolkit with a bit of a history. It has its strengths and weaknesses. But, more than that, ARkit changes so rapidly that developers should be paying special attention to all the updates in order to stay on the edge.

Pros:

  • Easier than before to get into, thanks to the recent RealityKit release
  • Developed Apple ecosystem
  • Reality Composer as a fast AR prototyping tool
  • Constantly expanding infrastructure of supporting applications
  • Low price: $99 / year for AppStore distribution

Cons:

  • Works only with modern iOS devices (iPhone 6s+, IPad Pro+)
  • No backwards compatibility with previous versions that worked with SceneKit

ARCore SDK

What is ARCore?

Put simply, ARCore is Google's answer to Apple’s ARKit. It’s a development platform for creating augmented reality applications that was released in early 2018. The SDK run on Google Play Services for AR and you'll have to agree to its terms and conditions before you download the tool for development. 

ARCore is an successor of Tango (or also known as Project Tango) which was Google's first augment reality computing platform. The platform was supported for 4 years until Google turned the support off on March 1st, 2018 in favor of the ARCore platform. 

At first, ARCore was primarily focused on Android as the main platform for creating AR experiences. This target was only natural, given that both were developed by Google.

However, over the last two years ARCore has expanded its reach. These days, ARCore features several API’s that let you create AR features experiences for both iOS and Android.

The platform can also be used with the popular game engines Unity3D and Unreal Engine.

ARCore offers three main features that allow you to build robust and rich AR projects:

  • Motion tracking: it’s crucial to not only put virtual objects into the real world, but also make sure that they look realistic from all angles. ARCore ensures this by aligning the virtual 3D camera that renders your 3D content with the device’s camera (you will be asked to turn on camera permission on your phone the first time).
  • Environmental understanding: ARCore detects planes and feature points so you can properly put virtual objects onto real, flat surfaces. For example, objects on your table or walls.
  • Light estimation: using a phone’s camera, ARCore can detect current lighting positions in the physical world. ARCore then lights the virtual objects in the same way as real objects, adding to the sense of realism.

ARCore Google example

developers.google.com

How To Use ARCore

Because ARCore features several API’s across Android, iOS, and game engine environments, the exact ARCore workflow will depend on your target platform. 

For example, to use ARCore with Unity3D you’ll need to install ARCore Unity SDK. As for Unreal Engine 4, you’ll have to clone or add Google’s repo to your current UE project.

Fortunately, developers.google offers extensive documentation on how to use ARCore within all the supported platforms. Google constantly updates the list of supported devices on their website, so make sure to check if your target devices support ARCore.

Below is a tutorial that you can follow to build a simple ARCore application in Unity. The video demonstrates an interactive newspaper with an experience similar to that in New York Times AR app:

Projects Developed with ARCore

Almost any AR app developed with ARKit has a counterpart developed with ARCore. However, Google is actively enriching their native applications with AR functionality, thus inspiring a new generation of AR projects within their ecosystem.

Below are some of the examples.

Navigation Systems

Since 2018, Google has been presenting augmented reality experiences in Google Maps.

It works like a charm just turn on Google Map Live Views and the directions will appear as your camera points toward a physical location.

Google map live example

The app is still in its testing phase, but there are already several similar AR applications for indoor navigation as well.

Remote Services

Streem is an ARCore-based AR application that connects customers with professionals to solve maintenance issues and guide customers remotely.

According to the creators, Streem offers remote help, allows faster quotes, and saves time on the road for busy professionals. All by simply adding AR-instructions to a phone camera feed.

Summary

Pros:

  • Available for multiple environments: Android, iOS, Unity3D, and Unreal Engine 4
  • Natural lighting for virtual objects
  • Free

Cons:

  • Not all devices are fully supported and you may need to use Android Emulator for testing your projects
  • Some iOS functionality is missing compared to Apple’s ARKit

Try our free On-Demand AR Workshops

Vuforia

What is Vuforia?

Vuforia is one of the oldest AR companies on the market. After its acquisition in 2015 by PTC Inc., Vuforia has expanded its line of AR-oriented tools. These tools now includes products such as Vuforia Engine and Vuforia Studio, which are both used in the development of AR applications.

The current 8th version of Vuforia Engine presented advances in markerless AR. That means that the virtual objects you place within a physical environment are more stable compared to Vuforia Engine’s previous versions.

It also offers Model Target, which is a feature that allows for recognizing multiple models from several views. Instantly.

Check out this 12-second video to see how it works.

Here’s a list of devices that you can use to run Vuforia Engine projects:

Vuforia device list

Since 2017, Vuforia Engine has been directly integrated with Unity3D, making it easier to create AR projects directly inside the game engine.

You can also use Vuforia Engine with iOS via XCode, Android Studio via Vuforia Android SDK, and Visual Studio.

Vuforia Studio, on the other hand, is a standalone drag-and-drop application used for building AR experiences without extensive programming or design skills.

Vuforia Studio example

To save time, you can use previously created 3D CAD and animated sequences. You can then combine them with 2D content to create things like AR-demos with instructions that pop up on your device screen.

Vuforia Studio example 2

How To Use Vuforia

Vuforia Engine is mainly used with the Unity3D game engine, so you can find extensive development documentation on both the Unity3D official forum and Vuforia’s website

Below is a basic tutorial that will teach you how to place a virtual box on the floor of your room using Vuforia Engine 8 and Unity3D’s game engine:

Projects Developed With Vuforia

Below are some of the most interesting applications of AR developed using Vuforia Engine. 

Medical Diagnostics

Vuforia developers were able to create a medical AR application that took a patient's 3D-printed heart as a marker model and built several layers of anatomy over it. Doctors examining the heart were then able to observe specific points of the heart, and thus study this patient's aortic dissection in detail.

medical-ar-example

The AR app allowed doctors to only 3D print specific parts of the heart without having to spend time on 3D printing the full pathology. By only printing what they needed, doctors could focus only on the most important areas. 

The future versions of the app may include fully animated and beating hearts so that clinicians can practice their echocardiography skills digitally on 3D-printed models.

Mercedes Onboarding

Mercedes developed a mobile AR application used as an interactive tutorial for E-Class and S-class car owners. They used this app to bring owners up to speed on all the latest features and technology. 

The application recognizes the shape of Mercedes’s dashboard and then offers dynamic hints that explain key parts of the dash and how they can be used.

Mercedes dashboard AR

AR applications are often used as an educational aid. In this case, Mercedes was also able to track which parts of the dashboard are used more often so they could improve customer satisfaction and the overall onboarding workflow.

Pros:

  • Both images and shapes can act as markers for AR experiences, allowing you to create ubiquitous AR interactions based on deep learning and advanced shape recognition techniques
  • Smooth integration with Unity3D
  • Several programming languages are supported: C++, Java, Objective-C and .NET through Unity3D extension

Cons:

  • Pricing is higher compared to other AR tools. The subscription starts at $42 / month. However, you can develop for free until the app is deployed.
  • No Unreal Engine 4 support

AR Foundation

What is AR Foundation?

AR Foundation is a package that lets you build cross-platform AR applications in Unity3D. 

This tool includes both ARKit and ARCore XR packages, which means that you can develop your AR application in Unity3D and then build it either for Android or iOS. If you'll want to realease your AR application for both Android and iOS devices, you're going to have to deal with AR Foundation. 

Learn how to make a popular Pokemon Go game with on-demand free AR workshop.

Better yet, AR Foundation can use features from both ARCore and ARKit frameworks in the same project. 

Let’s say you’re building an iOS AR application that uses a 3D-object tracking feature. You want your app to recognize physical objects of a certain shape and interact with them. 

The thing is, the 3D object tracking feature is currently available with ARKit, but not with ARCore yet. AR foundation will add special hooks on the objects. Thanks to these hooks, when you build your application for Android it will still work, even though the feature is not working on Android yet.

As soon as 3D object tracking becomes available with ARcore, all you’ll have to do is update your AR Foundation app packages without having to rebuild your app from the ground up.

With AR Foundation, you can also use unique Unity3D features to enrich your applications. For example, you can use Unity’s shader graph to create interesting visual effects directly in visual note editor:

AR foundation editor

This is the result:

AR Foundation illusion

How to Use AR Foundation

To use AR Foundation, you will have to install at least one platform-specific package either ARKit XR or ARCore XR.

AR Foundation is extensively documented on the Unity document website. Therefore,  you shouldn't have problems installing and using it. There’s also a large global community of Unity developers who can always help you via official forums.

For example, below is a useful code snippet that allows you to check at runtime whether AR is supported on you current device, and, in case it’s not, offer fallback experience for unsupported devices. 

public class MyComponent {
[SerializeField] ARSession m_Session;
IEnumerator Start() {
if ((ARSession.state == ARSessionState.None ||)
(ARSession.state == ARSessionState.CheckingAvailability))
{
yield return ARSession.CheckAvailability();
}
if (ARSession.state == ARSessionState.Unsupported)
{
// Start some fallback experience for unsupported devices
}
else
{
// Start the AR session
m_Session.enabled = true;
}
}
}

Another advantage of AR Foundation is its massive Unity3D community. There are hundreds of videos and tutorials associated with the platform, which makes for a smooth learning curve.

Below is a tutorial that will teach you how to build an augmented reality experience for both iOS and Android platforms:

Projects Developed With AR Foundation

AR Foundation lets you build AR experiences for any modern platform, including all the examples that were mentioned earlier in the article. 

You can use the following Unity AR Foundation Essentials library of 20+ repositories as a starting point for your own AR projects:

AR foundation project sample

Summary

Pros:

  • Vast community support, easy access to Unity3D codebase & asset store
  • Additional Unity features
  • The ability to develop one application for several platforms at the same time

Cons:

  • Standard Unity pricing system applies if your project generates more than $100K over year, Unity3D Pro license will cost you from $40 to $150 per month.

Build your own AR application

Now that you've learned about different types of augmented reality SDKs, why don't you build a simple app yourself?

Our instructor prepared a simple project where you're going to utilize plane tracking from Vufori and AR Foundation to superimpose a Unity object on the image target on your smartphone.

All project resources such as material assets and build settings are included.

Watch the On-Demand AR Workshop Tutorial

Conclusion

In this guide we’ve reviewed four different platforms from the industry leaders. Alas, there is no clear winner. All four platforms are perfectly capable of providing you with the necessary tools for AR development. If you're looking to get started developing for your device, check our blog on how to setup our Unity build through package manager to start developing right away. 

Ultimately, your decision all comes down to your particular needs and circumstances certain platforms are better suited for certain projects. User experience should always be your top priority — the tools are there just to help achieve the ultimate goal. 

If you’re leaning towards using Apple’s advancing ecosystem of applications and create AR projects that use both Apple’s hardware and software to its maximum, then by all means use ARKit. 

If, however, you are planning to take advantage of Google’s numerous services in your AR apps and need more flexibility in terms of target devices, consider using ARCore.

PTC’s Vuforia is a great development system for business-oriented projects, especially manufacturing AR solutions. The program’s flexible development engine has already been used for creating innovative workflows in multiple industries. Additionally, tools like Vuforia Expert Capture and Vuforia Chalk will help you easily create AR instructions and collaborative sessions to increase workforce effectiveness even further.

Currently, Unity3D has one of the biggest XR development communities in the world, which only adds to its appeal.

Finally, for AR games and interactive cross-platform applications, Unity3D’s AR Foundation may be the best option. Their platform gives you the benefits of using both ARKit and ARCore frameworks, as well as Unity3D’s own extensive features and large asset market.

More and more companies are jumping on the AR train, trying to find new and revolutionary ways of selling products, teaching students, and even healing patients. 

With projected growth in excess of hundreds of billion dollars over the next five years, it’s safe to say that AR is not a seasonal trend but a technology that will change many facets of our lives. 

At the same time, the AR field is changing so rapidly that this guide will probably be updated within a year. 

Given how often tech companies update their software and hardware solutions, we hope that this guide helps you to stay relevant and competitive in this exciting and ever-growing industry.

Try our free On-Demand AR Workshops

Download Syllabus

Download XR Development with Unity Course Syllabus

Share this