This article originally appeared on RubyGarage and has been republished with permission.
Augmented reality (AR) has become a new buzzword in the digital world, and it’s difficult to find someone who’s never heard of this cutting-edge technology. AR is already applied in multiple industries, from gaming (think Pokemon Go) and ecommerce to education and healthcare.
According to an article published on the Digi-Capital blog, revenue generated by the augmented/virtual reality market is expected to reach $108 billion by 2021, with the share of AR likely to reach $83 billion (versus $25 billion for VR). Augmented reality is a huge and rapidly growing market. It stands to reason that major digital corporations, such as Facebook, Google, and Apple, are heavily investing in AR, while many smaller businesses are following suit. If you’re determined to embrace this new 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.
TYPES OF AUGMENTED REALITY APPLICATIONS
There are two types of AR mobile applications, and the first thing to decide is which type you’re going to build.
Marker-based augmented reality mobile applications are based on image recognition. They use a camera of a portable device to detect certain patterns or markers, such as QR codes or images. Once a pattern is recognized, the app overlays digital information on this marker. The orientation of the AR object depends on the position of the marker. The most advanced augmented reality SDKs support recognition of 3D markers, i.e. real-life objects.
Location-based AR apps don’t need markers; instead, they use GPS and other position detectors (accelerometers and digital compasses) to establish your location and create augmented reality objects. Location-based AR mobile applications can show you directions to where your car is parked in a huge parking lot, for example.
Pokemon GO app
HOW TO CHOOSE THE RIGHT AUGMENTED REALITY SDK
Lots of augmented reality development kits are available, so the choice isn’t that easy. To make the right choice, you should select a tool for augmented reality app development according to the functionality of your mobile app. There are several major criteria we’d like to draw your attention to.
Type of licence Money. That’s what any entrepreneur should consider first. Therefore, you should check out what kinds of licences each augmented reality SDK offers. As usual, there are free and commercial licences. Needless to say, free functionality is usually rather limited, so a commercial licence is required to build a function-rich mobile application. There is also open source augmented reality software, to which developers can contribute and add more functions.
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 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.
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 on 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.
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.
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.
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.
3D tracking Top augmented reality platforms support 3D image tracking, which means they can recognize 3D objects, such as cups, cylinders, boxes, toys, and more. 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 ecommerce.
Geolocation Essential for creating location-based AR apps. For example, if you wish to add virtual points of interest to your application (that will show, say, the nearest cafes and restaurants), you need an augmented reality platform with geolocation support. Geolocation is useful in some mobile AR games as well (e.g. Pokemon Go).
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.
Best Augmented Reality Tools
Now that you know what features you should consider, it’s time to review the most popular augmented reality platforms on the market. Though there are quite many of them, we’ve shortlisted eight AR SDKs.
Vuforia is one of the best platforms for augmented reality development, as it offers an impressive set of functions. Let’s go over some of them:
- The Vuforia augmented reality SDK can recognize 2D and 3D objects (such as cylinders, boxes, and consumer products).
- Text recognition. Vuforia has a standard English vocabulary with over 100,000 words, or you can use your own custom vocabulary.
- Video playback. Vuforia can play videos when target surfaces are detected.
- VuMarks are Vuforia’s own bar codes that not only encode data but act as markers as well.
- Local (on-device) or cloud recognition.
- Virtual buttons allow you to use various surfaces as a touch screen.
This SDK is available for free, but with Vuforia watermarks and limited functionality. Additional functions that unleash the full potential of this AR SDK are available under several commercial licences.
Kudan is a popular Android and iOS augmented reality SDK that doesn’t support other platforms. However, Kudan does have Unity support. Kudan can recognize 2D and 3D images and supports SLAM. This AR SDK uses the high-performance KudanCV engine that boasts a low memory footprint. The Kudan augmented reality development kit is available with both free and commercial licences. The free one includes watermarks, though.
EasyAR is offering its next-generation SDK, which offers a number of cutting-edge features, such as SLAM, 3D tracking, and screen recording. However, these functionalities are available only in the paid 2.0 SDK Pro, not in the free 2.0 SDK Basic. Even the free EasyAR augmented reality SDK, however, boasts an impressive set of functions, such as cloud recognition and unlimited recognition queries. Also, the free version can store up to 1,000 on-device targets.
The latest version of the Wikitude augmented reality development kit includes a lot of top-notch AR features that allow you to build both marker- and location-based AR mobile apps. Let’s go over the most important capabilities of the Wikitude AR SDK:
- Instant tracking for mapping environments and displaying of virtual objects without markers. This function is based on Wikitude’s SLAM technology.
- Geolocation support for adding location-based services to your AR mobile applications.
- On-device and cloud recognition.
- Extended tracking function keeps showing virtual content even when the camera loses a marker.
Apart from Unity, the Wikitude AR SDK supports other development frameworks, such as Cordova, Appcelerator Titanium, and Xamarin. This augmented reality development kit comes with commercial licences only, though a free trial is available.
XZIMG offers three different augmented reality products:
- XZIMG Augmented Face is a facial tracking technology that works through the Unity plugin.
- XZIMG Augmented Vision recognizes simple images and black-and-white markers.
- XZIMG Magic Face is a solution for makeup-based and face replacement applications.
The database is created locally with the help of the Unity plugin. XZIMG tools can be deployed on a variety of platforms: not only on Android and iOS, but also on Windows. Also, XZIMG can be deployed for HTML 5 (through Unity WebGL) and Flash (through FlashDevelop).
ARToolKit is open source augmented reality software that allows you to tailor the source code for your mobile app. The functionality is rather good for a free SDK:
- Integration with GPS and compasses for creating location-based AR apps.
- Automatic camera calibration utilities.
- Simultaneous tracking, allowing you to create AR apps capable of tracking several objects.
- Single or dual camera support.
This open source augmented reality SDK can run on multiple platforms, including not just Android and iOS but Windows, Linux, and macOS as well. Moreover, ARToolKit has Unity and OpenSceneGraph support.
Though ARToolKit has quite a lot of features for a free SDK, it requires time to integrate and configure.
Maxst offers two kinds of software to create augmented reality apps: Maxst AR SDK 2D and Maxst AR SDK 3D. As their names suggest, one tool can recognize only 2D images, while the other is far more powerful and can track 3D objects.
- Maxst AR SDK 3D boasts such features as SLAM, a physics engine effect (used, for example, to create the effect of snow falling and accumulating on the roof), and an occlusion effect (when virtual content is fully or partially screened by a real object).
- Maxst AR SDK 2D comes with multiple image recognition (up to 200 images per channel), video augmentation, and more.
Maxst augmented reality development tools are available for free (with watermarks) as well as under a commercial licence.
Apple introduced its own augmented reality SDK during the Worldwide Developers Conference (WWDC) on June 5, 2017. Apple ARKit will be available for the brand-new iOS 11, which is due to be released in the fall. Apple has put a lot of effort into making augmented reality experiences available to iOS developers.
ARKit is already available for a beta version of iOS 11. Let’s go over the most important functionalities of Apple’s AR SDK:
- Visual Inertial Odometry accurately tracks the environment by combining visual information from the camera with advanced computer vision analysis.
- Plane detection enables iPhones and iPads to scan the environment and detect horizontal planes (floors, tables, etc).
- Lighting estimation automatically analyzes the amount of light in the real world and adjusts the amount of light hitting virtual objects.
- ARKit can be used in combination with the Unity and Unreal engines.
ARKit, however, will only work with Apple A9 and A10 CPUs, so augmented reality functionality will only be available for those devices manufactured after 2015 (another reason to rush for new iPhones and iPads!).
Augmented Reality SDK Comparison
Based on the criteria above, we’ve compiled a comparison chart of the top eight augmented reality platforms.
Now that you know what augmented reality SDKs are available and what major features they offer, you can choose the most appropriate tool for creating great AR apps. Decide what functionality you need in your mobile application, check the list of SDKs, consider the pricing, and you’re ready to develop a top-notch app.
This story was submitted by Gleb Bryksin and does not constitute the views or opinions of Upwork.
Upwork is a freelancing marketplace where businesses of all sizes can find talented professionals across multiple disciplines and categories. If you are a business and are looking to get projects done, consider signing up!