Augmented Reality Starters Guide
By: Tanim-Ul Haque Khan
Tags: AR, Vuforia, Arcore, Arkit, Beginners Guide

After juggling around with multiple Augmented Reality SDK’s I’ve decided to write down what I realized so far. In case you are planning to develop the next AR application, this would benefit you very much in the way you probably haven’t though yet.

LICENCING

This is something you probably worry about at the last. But hear me out. This would be your first concern. Why? Because even if you are just playing around with some SDK you do want to get paid at some point for that skill right? So don’t arbitrarily learn skills that may be too expensive to afford for most clients.

Just so you know more or less All the SDKs for AR out in the market MUST be licensed and the industry-standard ones don’t have any free license for publishing except for ARCore and ARKit.

If you look up for the best AR SDKs you will find Vuforia on top. And that doesn’t have any free license. It’s a great tool by the way. And if you are a low profile company you can just get past using the Basic license of 42$/Month. Even that might be expensive for some small firms who just want to test things out. And if you are developing for a giant company you might want to think twice before you make any commitment because all the enterprise licenses cost from four Digit to five-digit US dollars.

So before you even start developing or proposing a product for a client take a look at the policies and the price points of the SDKs that you wish to use. Trust me this will be a headache later on if you don’t plan this at first.

Tools

If you are developing an augmented reality application. It’s very likely that you would use a game engine and possibly Unity 3D. Unity does have a free tier. So if you are playing around it’s free to use. But if you are working for a client he would very much want that unity logo removed from the initial login screen. And the only way to do that is to buy a license. So if you are planning to use unity better be prepared to pay for that as well.

Alternatively, you can use Native Android or iOS development. But that would be rather expensive In terms of development cost. So it’s better to pay unity for the license. But it’s possible to develop AR apps with native development which may not be as easy as it is with Unity or some other Game Engine. So before you quote anyone anything, you should be very careful.

Available SDKs

Now that you know what to worry about the most let us talk about the available SDKs on the market. We will only talk about the most used SDKs

ARKit

ARCore

Vuforia

Wikitude

AR SDKs

Common Augmented Reality Features

Before you choose an SDK its important to know which SDK offers which features. And the popular ones in the market.

Image Tracking

Image tracking is the simplest form of augmentation. It tracks a fixed image, With image recognition, it can detect trained images and augment on top of the images.

Image Tracking

Plane Tracking

This is a little complex feature, it uses real-time calculations and tries to map a flat surface. The surface can be horizontal or vertical. Almost all the SDKs that support Plane Tracking supports both planes. And some just support horizontal tracking only. Once the surface is detected, augmentation is possible on top of the surface.

Plane Tracking

Lighting Estimation

This is a very advanced feature. This allows the developer to know how much lit an area is in real life. That way he can put light effects on the 3D Model that’s being augmented. It makes a more realistic experience. But this is very limited at the moment. It doesn’t give you the direction of the light so you can’t create a real-time shadow.[Please note that this is only true at the moment maybe in the future this might be different]

Light Estimation

Shared worlds

This is a concept when you wish to develop a multi-user AR experience. mostly multiplayer AR games. This is a very new feature. Only a few SDKs offer this. With this multiple users can see the same world with their different devices

Shared World

Face Tracking

This is something most of us are already familiar with. Remember Snapchat? All those filters on the camera apps now? Yes, those are done with Face Tracking.

Body Tracking

This is probably one of the most complicated features. It must be mentioned that Microsoft was the pioneer of Body Tracking with Kinect. With this feature, it’s possible to track one person's body movement and place augmentations on top of it. One good use case would be a Virtual Dressing Room. Or creating Movement Animations for game development usage.

3D Object Tracking

This is another advanced feature that’s not supported by all the SDKs yet. What it does is, like image tracking it can detect 3D Realworld models based on their Geometry. The use case for this feature is pretty self-explanatory. You can augment Toys or Real-life cars to show various features.

Occlusion

By default, all the augmentation is done on top or in front of the real world. What if you want real-world objects to occlude(hide) it? This is where this feature comes in.

Decision Matrix

Now that we have a clear idea of what augmented reality SDKs commonly offer let us see which SDK offers which features then we can move on to deciding which SDK we really need to use.

AR SDK Comparision Char

We can clearly see in terms of feature ARKit just dominates every other SDK and it’s totally free. The only drawback is it’s only for iOS. So if your application is iOS only. Close your eyes and pick ARKit.

If you want to develop an AR app for Android, ARCore should be your primary choice. And the best thing about ARCore is they do support iOS too. So this opens up the scope of Cross-Platform Development.

But there’s one feature that AR Core doesn’t yet support unlike other Cross-Platform SDKs, The 3D Object Tracking. In case you wish to make a Cross-Platform 3D Object tracking App. You have to go to one of the other two SDK. And point to be noted they aren’t Free rather quite expensive. Maybe after a few months, ARCore would offer the same features as ARKit then these two would become the mainstream SDK by default.

Summary

If in doubt start with AR Core because that’s where everyone will be heading very soon. But if you need to deliver a specific solution as soon as possible, you may have to pick some paid licenses unless you are just focusing on iPhone then you can just go with ARKit.