AR SDK Expectation (On paper) Vs Reality (Actual Implementation)
The core software powering an Augmented Reality experience is known as an AR SDK or AR Engine. It solves the difficult task of fusing the real world with the digital content. The AR Engines’ capabilities define the potential features of the AR application.
Tracking and recognition are two of the most fundamental requirements for every AR software package. If AR software is prone to losing the tracking of the reference image, be it due to adverse lighting conditions, distance from the image, movement or the inability to process a blurred camera image, oftentimes it breaks the experience for the end user.
- The speed of recognition and robustness can vary between AR SDKs, especially with reference images that are considered ‘weak’ i.e. not many feature points.
- There are many misconceptions about the AR Software provider market that even seasoned professionals can be led into believing.
- For example, Developer A under the impression that ‘X’ SDK’s tracking was the best in the world – until he actually tried other available SDKs.
If you’re determined to embrace this technology and create an augmented reality mobile application, you need an appropriate AR software development kit (SDK). We’ve decided to help by telling you what SDKs are available on the market and what criteria to look for when choosing software to create augmented reality apps.
How to Choose The Right Augmented Reality SDK?
There are tons of Augmented Reality SDKs available in the market, but do you know which factors to keep in mind when selecting an Augmented Reality SDK for developing Augmented Reality Apps? Since there are many Augmented Reality SDKs available, making the right choice isn’t easy. And, to select the right SDK, you need to choose a tool in accordance with the functionality to be added in your AR mobile app.
There are several major criteria we’d like to draw your attention to. The following are some of them that you need to give your attention to.
1. Type of License:
Money! That’s what any entrepreneur should consider first. Therefore, you should check out what kinds of licenses each augmented reality SDK offers. As usual, there are free and commercial licenses. Needless to say, free functionality is usually rather limited, so a commercial license is required to build a function-rich mobile application.
There is also open source augmented reality software like ARToolkit+, to which developers can contribute and add more functions. ARReverie is working on ARToolkit-6 to deliver best possible AR solution.
2. Supported Platforms:
When choosing an augmented reality SDK, you should check which platforms it works with. Of course, nearly any SDK supports both Android and iOS (the two most widely used mobile operating systems).
But what if you decide to develop an app for Microsoft HoloLens and Windows Mobile? Some AR SDKs are compatible with the Universal Windows Platform (UWP) that will help you create AR apps for Windows-operated smartphones and computers. There are also augmented reality platforms that allow you to develop AR apps for macOS. Even if you don’t need these functions now, you might need them sometime in the future.
3. Unity Support:
Unity is one of the most advanced game engines in the world.Typically, it’s used to create games for computers and consoles, but Unity is also capable of powering augmented reality apps. Thanks to Unity, you can create some truly gee-whiz graphics in your AR mobile applications, so check whether an SDK is compatible with Unity.
The downside of utilizing Unity is its resource-intensiveness, so many businesses prefer developing native iOS and Android apps. While considering cross-platform app development and 3D support, Unity is the most useful tool.
4. Smart Glasses Support:
Today, most AR applications function through smartphones, which means users can see virtual objects on the screens of their gadgets. However, there is a different way to overlay AR objects right in the real world: smart glasses. Unlike smartphones, smart glasses allow hands-free AR experiences. Since smart glasses are becoming more popular (recall Microsoft HoloLens, Vuzix Blade 3000, Epson Moverio BT-300, and many more), being able to build AR mobile apps compatible with these gadgets is certainly an advantage.
5. Cloud Recognition:
If you wish to create an AR mobile app capable of recognizing lots of different markers, you should check whether an augmented reality development kit supports cloud recognition. With this feature, markers are stored in the cloud, while an application doesn’t require much space on a mobile device.
Another important aspect is the number of markers that can be recognized. Some augmented reality development kits support 100 markers, but others can recognize thousands of them. Needless to say, the more markers AR development software can recognize, the more advanced the AR experiences you’ll be able to create.
6. On-Device (Local) Recognition:
If your goal is to create a small and simple augmented reality mobile app, you should consider using an SDK with on-device (i.e. local) recognition. In this case, markers are stored right on a user’s portable device, so there’s no need to go online to use the app.
7. 3D/Edge(CAD) based tracking
Most of the augmented reality platforms support 2D image/feature based tracking, which means they can recognize planner objects only, such as image, flat surface etc. But new technology comes up with an edge based tracking or enhanced model tracking enables you to use 3D models & CAD data to set up trackers, as they are perfect references for your physical 3D objects. This tackles not only typical AR problems, like bad light conditions, dynamic scenes, or low-textured objects.
This immensely expands the opportunities for augmented reality in your mobile apps. For example, 3D object tracking can be used for creating mobile games and AR apps for commercial use..
SLAM stands for Simultaneous Localization and Mapping. The name might seem scientific, but the core of this technology is quite simple: SLAM allows applications to map an environment and track their own movements in it. For example, an AR mobile app can remember the position of different things in a room and, thus, keep a virtual object in a certain place while a user moves around the room.
Also, this technology can go far beyond adding AR objects to a room. Thanks to SLAM, it’s possible to create maps for indoor navigation. Keep in mind that GPS doesn’t work indoors, but SLAM does, so this technology has enormous potential.
Augmented Reality SDK Comparison of frameworks’ basic characteristics
- Dev: Development Licence (free with watermark/Limitations)
- A: Android
- i: iOS
- W: Universal widows platform
- SLAM: Simultaneous Localisation and Mapping
|Pricing / License||Paid + Dev||Free API||Free API||OpenSource||Paid+Dev(L)||Paid+Dev||Paid+Dev|
|Open Source||No ×||No ×||No ×||Yes√||No ×||No ×||No ×|
|Deployment Platform Support||A, i, W||ios||Android||A, i||A, i||A, i||A, i|
|Feature based/2D Tracking||Yes√(robust)||No ×||No ×||Yes√(NFT)||Yes√||Yes√||Yes√|
|Edge based/3D Tracking||Yes√||No ×||No ×||No ×||Yes√||Yes√||Yes√|
|SLAM Tracking||No ×||Yes√||Yes√||No ×||Yes√||Yes√||Yes√|
|Cloud Recognition||Yes√||No ×||No ×||No ×||Yes√||Yes√||Yes√ CRS|
|Target Generation Process||Cloud||NA||NA||Local||Cloud||Local||Local|
|Open CV Codebase||No ×||Metal||Yes√||Yes√||No ×||Yes√||No ×|
|Rating by ARReverie||8/10||9/10||7/10||6/10||5/10||5/10||4/10|
If what you’re looking for is professionalism, good support, and scale, you’ll definitely need to check out Vuforia. If you’re not put off by their (pretty steep, especially for smaller companies) prices, you’re probably not going to find a better framework right now.
If all you need is basic functionality, you might do fine with ARToolkit+. It allows you to be pretty flexible and it’s a fully open-source project.
Can you please explain what is mean by ‘Target Generation Process’ and ‘ Open CV Codebase’ ?
One question about Image Recognition, is it mandatory that the target images should be part of the app itself or can we have set of images in the app memory and perform on-device image recognition with it (the images might change or download when we click on a button each time in the app) ? note: The use case is only Image recognition and not the AR feature