BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Six Top Tools to Build Augmented Reality Mobile Apps

Six Top Tools to Build Augmented Reality Mobile Apps

Leia em Português

Key Takeaways

  • Though many people consider AR to be only an entertainment technology, it’s actually widely used in multiple industries like healthcare, e-commerce, architecture and many others.
  • There are two broad classes of AR apps: marker-based apps and location-based apps. Marker-based apps use predefined markers to trigger the display of AR overlays on top of the image. Location-based apps use GPS, accelerometer, or compass information to display AR objects on top of physical ones.
  • To choose an AR SDK, the most important criteria to consider are: cost, supported platforms, image recognition and tracking support, Unity support, OpenSceneGraph support, GPS, etc.
  • This article provides a useful table summarizing all the major characteristics and features of six widely available AR toolkits.

Augmented reality (AR) has become the new trend in the digital world and you can hardly meet a person who is not familiar with it after the boom that Pokemon Go brought into the lives of the average mobile user.  Though many people consider AR to be only an entertainment technology, it’s actually widely used in multiple industries like healthcare, e-commerce, architecture and many others. This article is going to break down that stereotype.

The potential of AR is seamless and brands are already utilizing this technology in their business to provide a brand new user experience. Companies implement AR to create product demos, interactive advertising and provide real-time information to customers. It was proved that when people touch or interact with a product, they are more likely to buy it due to the emotional bond established.

According to a Statista forecast, the market of augmented and virtual reality is expected to reach the size of $215 billion in 2021. Being a rapidly growing market with huge potential, AR attracts both huge corporations like Google, Apple, Facebook, etc., as well as smaller businesses.

This article aims  to help developers to create their first AR app by summarizing information about the most popular and useful AR software development kits (SDKs) that are available. Additionally, we listed the criteria you have to pay attention to while building augmented reality apps.

What types of Augmented Reality applications exist?

Before starting the development of a augmented reality app, you have to choose between two broad categories: location apps and marker-based apps. Below we briefly discuss the differences between them.

Marker-based applications

Marker-based apps are based on image recognition. They use black and white markers as triggers to display AR content. To see the augmented component, you have to point the camera on a marker's position anywhere around you. Once the device recognizes the marker, an app overlays the digital data on this marker and you can see the augmented object.

When you build  a marker-based app, you provide the images or their descriptors beforehand to simplify the process of searching them when the camera data is being analyzed. In other words, the objects are already hard-coded in your app, so they are easier to detect. It’s no wonder that the majority of AR apps are marker-based.hey are especially popular in advertising.

Location-based applications

Location-based AR apps work without markers. They detect the user's position with the help of a GPS, an accelerometer, or a digital compass and overlay the augmented reality objects on top of real physical places. The most famous location-based app is surely Pokemon Go.

These apps can send notifications to the user based on their location to provide them new AR content related to a given place. For example, an app could give recommendations about the best bars nearby, and show how to get there. As an additional example, an app could help you find your car inside a huge parking using GPS.

What are the Main Criteria to Choose an Augmented Reality SDKs?

When it comes to choosing a  development kit, it’s easy to get frustrated by the number of tools available. In order to pick the SDK that best suits your project, you should make sure it supports all the features your app requires. In the following, we detail the main points to consider.

Cost

Pricing is the first distinguishing mark of an AR SDK. For those who want to try AR development for the first time, the best options are free open-source AR SDKs, which are open to contributions and can be extended with new features proposed by developers. 

Paid SDKs in most cases offer several pricing plans, depending on the user's needs. As it happens, free tiers have limited possibilities and are meant to be a “demo version” of the full product. Building a complex app with  large, dynamic content will likely require a commercial license. So be ready to pay.

Platforms

If you plan to develop your app for iOS or Android, there won’t be any problems when choosing an augmented reality toolkit, since nearly all of them support them. Meanwhile, the choice of tools that are compatible with Windows or macOS is rather small. Still, you can build your app for Windows computers or smartphones using augmented reality development kit, supporting the Universal Windows Platform (UWP).

Image recognition

This feature is a must-have for any AR app as it allows to identify objects, places and images. To this aim, smartphones and other devices use machine vision together with camera and artificial intelligence software to track images that can be later overlayed with animations, sound, HTML content etc.

3D recognition and tracking

3D image recognition and tracking is one of the most valuable features of any AR SDK. Due to the tracking, an app can “understand” and enhance the large spaces around the user inside of large buildings such as airports, bus stations, shopping malls, etc.  Applications supporting it can recognize three-dimensional objects like boxes, cups, cylinders, toys etc.

Currently, this technology is commonly used in mobile games and e-commerce.

Unity support

Unity is known to be the most popular and powerful game engine worldwide. Though it’s usually used for developing computer games, it can also be utilized for making AR apps with powerful effects. Whether you are going to create a cutting-edge experience or extend a more traditional idea with new techniques, multipurpose tool like Unity allows you to implement both.

OpenSceneGraph support

OpenSceneGraph is an open source 3D graphic toolkit (application programming interface). It’s used by app developers in such domains as computer games, augmented and virtual reality, scientific visualization and modeling.

Cloud support vs local storage

When developing AR mobile applications, you have to decide whether user data will be stored locally or in the cloud. This decision is mostly driven by the number of markers you are going to create. If you are planning to add a large number of markers to your app, consider storing all this data in the cloud, otherwise your app will use much storage on the device. Furthermore, having an idea of the number of markers your app uses also matters because some augmented reality SDKs support a hundred markers while others support thousands.

On the other hand,  storing markers locally (i.e., on-device) enables users to run your augmented reality app offline, which could be convenient as you don’t always have Wi-Fi or mobile-data available.

GPS support (geolocation)

If you are going to create a location-based AR application, geolocation is a fundamental feature that must be supported by the AR tool you are going to use. GPS can be used both in AR games like Pokemon Go as well as in apps made to overlay data on some nearby locations (for example to find the nearest restaurant).

SLAM support

SLAM means Simultaneous Localization and Mapping. It is an algorithm that maps the environment where the user is located and tracks all of their movements. AR apps containing this feature can remember the position of physical objects within some environment and position virtual objects accordingly to their position and users movements. SLAM has huge potential and can be used in many kinds of apps, not only AR apps. The main advantage of this technology is the ability to be used indoors while GPS is only available outdoors.

Top 6 Augmented Reality SDK for Mobile Apps

Once you know all the features you could possibly require of an SDK to create your augmented reality app, you can check out the following list of six popular tools that are available on the market. We consider these toolkits to be the most relevant and appropriate based on the set of features they provide and their value for money. Some of them are free.

Vuforia

Vuforia is a leading portal for augmented reality application development that has a broad set of features. Vuforia augmented reality SDK:

  • Recognizes multiple objects including boxes, cylinders, and toys as well as images.
  • Supports text recognition including about 100,000 words or a custom vocabulary.
  • Allows creating customized VuMarks, which look better than a typical QR-code.
  • Allows creating a 3D geometric map of any environment using its Smart terrain feature
  • Turns static images into full motion video that can be played directly on a target surface.
  • Provides a Unity Plugin.
  • Supports both Cloud and local storage.

Supported platforms: iOS, Android, Universal Windows Platform, Unity.

Pricing: free version, classic version - $499 one time, cloud - $99 per month and Pro version for commercial use.

Video Presentation:

ARToolKit  

ARToolKit is an open-source tool to create augmented reality applications. Even though it's a free library, it provides a rather rich set of features for tracking, including:

  • Unity3D and OpenSceneGraph Support.
  • Supports both single and dual camera.
  • GPS and compasses support for creation of location-based AR apps.
  • Possibility to create real-time AR applications.
  • Integration with smart glasses.
  • Multiple Languages Supported
  • Automatic camera calibration.

Supported platforms: Android, iOS, Linux, Windows, Mac OS and Smart Glasses.

Pricing: free

Google ARCore

With two millions Android active users, Google could not miss the chance to give developers an opportunity to create AR apps on this operating system. That’s how Google ARCore appeared.

This toolkit works with Java/OpenGL, Unity, and Unreal. It provides features such as:

  • Motion tracking. ARCore can determine the position and orientation of the device using the camera and spot the feature points in the room. That helps to place virtual objects accurately.
  • Environmental understanding. Due to the possibility of detecting horizontal surfaces, you can place virtual objects on tables or on the floor. This feature can be also used for motion tracking.
  • Light estimation. This technology allows your app to match the lighting of the environment and to light virtual objects so they look natural within the surrounding space. With the help of smart light tracking developers can now create very realistic objects.

Supporting devices: Currently: Google Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Samsung Galaxy S7-S8+, Samsung A5-A8, Samsung Note8, Asus Zenfone AR, Huawei P20, OnePlus 5  ARCore is designed to work on devices running Android 7.0 and higher.

Pricing: free

Video Presentation:

Apple ARKit

With iOS11, Apple introduced its own ARKit, announced during Apple’s Worldwide Developers Conference in June 2017. Here are the features of  Apple’s augmented reality SDK for iOS:

  • Visual Inertial Odometry (VIO) allowing to track en environment accurately without any additional calibration.
  • Robust face tracking to easily apply face effects or create facial expressions of 3D characters.
  • Tracking the light level of environment to apply the correct amount of lighting to virtual objects.
  • Detecting horizontal planes like tables and floors, vertical and irregularly shaped surfaces.
  • Detecting 2D objects and allows developers to interact with them.
  • Integration with third-party tools like Unity and Unreal Engine.

Compatible with the following devices: iPhone 6s and 6s Plus, iPhone 7 and 7 Plus, iPhone SE, iPad Pro (9.7, 10.5 or 12.9) – both first-gen and 2nd-gen, iPad (2017),iPhone 8 and 8 Plus, iPhone X

Pricing: free

Maxst

MAXST has two SDKs available: a 2D SDK for image tracking and a 3D SDK for environment recognition. Here is the list of features of the 3D SDK:

  • MAXST Visual Simultaneous Localization and Mapping for tracking and mapping environments. When you track the surroundings , the map is automatically extended beyond the first view along with the move of the camera. Maps can be also saved for the later uses.
  • Saving files created with Visual Simultaneous Localization and Mapping to render 3D objects wherever you like on it to create more immersive AR experiences.
  • QR and barcode scanning.
  • Extended image tracking and Multi-target tracking. You can track the target as far as the camera can see it and can also track up to 3 images at the same time.
  • Tracking and placing digital objects in relation to the plane.
  • Unity plugin integration.

Supported platforms: Android, iOS, Mac OS and Windows.

Pricing: free version, Pro-One time fee - $499, Pro-Subscription - $599 per year, Enterprise version.

Video Presentation:

Wikitude

Wikitude has recently introduced its SDK7, including support for simultaneous localization and Mapping. The tool provides currently the following features:

  • 3D recognition and tracking.
  • Image recognition and tracking.
  • Cloud recognition (allows to work with thousands of target images hosted in the cloud).
  • Location-based services.
  • Smart glasses integration.
  • Integration with external plugins, including Unity.

Supported platforms: Android, iOS, Smart Glasses (currently  Google Glass, The Epson Moverio BT-200, and the Vuzix M100).

Pricing: Pro version - €2490 per year per app, Pro3D - €2990 per year per app, Cloud - €4490 per year per app, Enterprise version.

AR SDK Comparison Table

We decided to organize the main characteristics and features of the mentioned AR tools in one table so that you can quickly compare them. 
 

AR SDK

Best for:

Supported platforms

Cost

Vuforia

Marker-based apps

  • iOS
  • Android
  • Universal Windows Platform
  • Unity
  • Free version
  • Classic version - $499 one time
  • Cloud - $99 per month
  • Pro version for commercial use.

ARToolKit

Location-based apps

  • Android
  • iOS
  • Linux
  • Windows
  • Mac OS
  • Smart Glasses

Free

Google ARCore

Marker-based apps

  • Google Pixel
  • Pixel XL
  • Pixel 2
  • Pixel 2 XL
  • Samsung Galaxy S8
  • Samsung Galaxy S9

Free

Apple ARKit

Marker-based apps

  • iPhone 6s and higher
  • iPad Pro (9.7, 10.5 or 12.9)

Free

MAXST

Marker-based apps

  • Android
  • iOS
  • Mac OS
  • Windows
  • free version
  • Pro-One time fee - $499
  • Pro-Subscription - $599 per year
  • Enterprise version

Wikitude

Marker-based apps

  • Pro version - €2490 per year per app
  • Pro3D - €2990 per year per app
  • Cloud - €4490 per year per app
  • Enterprise version.

Conclusions

Needless to say, augmented reality technology is trendy. Each new AR app launch causes waves of excitement. Therefore, savvy developers are trying to master this technology and launch their own AR apps.

Now, developers have a wide choice of AR toolkits to create both marker-based and location-based apps. The first step to get started is picking up the  augmented reality SDK most suited to comply with their requirements. This article makes it easy to compare features such as image and 3D recognition, storage possibilities, Unity and SLAM support, etc., for development teams to easily select the best toolkit for their future apps.

We hope this article inspired you to build your own AR app using the listed tools! Got inspired by our article? Go ahead to build an outstanding AR app!

About the Author

Andrii Zhuravlov-Galchenko is the head of mobile development department in GBKSOFT. With 10+ years of developer experience, he likes to mix different techs such as web, computer vision, and mobile development. Andrii is always on the look for new technologies and keen on innovation, and tries to bring both to each  project of his. As a team leader he is always ready to help up with any kind of issues.

Rate this Article

Adoption
Style

BT