By Albert Wang
Developing apps for Augmented Reality is no easy task. It’s still a fairly new market and it can be challenging to find a Software Development Kit (SDK) that fits all of the needs of a developer.
Interest in AR SDKs has intensified since last year, when one of the leading solutions, Metaio, was sold to Apple, leaving an estimated 150,000+ developers in search of a replacement. Vuforia remains the market leader, but there are many good alternatives in the marketplace, some of which are already quite well known, such as EasyAR、Blippar、and Wikitude.
So, what criteria should a developer apply in evaluating AR SDKs? The answer to that question will vary. There are many factors developers need to consider in choosing an SDK, including key features and cost. Portability is another issue, since some SDKs only work on certain hardware.
However, there are a handful of key features and capabilities that all developers should look for when evaluating their next AR SDK:
- Clould-based storage to support a greater number of 2D markers. 2D object tracking is the most basic form of mapping and allows an application to recognize a flat surface which can then be used to trigger a response, such as creating a 3D image or effect to appear on top of it, or playing a movie trailer where a poster used to be. This is simple to do and all SDKs support it; however, a key difference among SDKs is the number of markers that can be recognized. Many SDKs support around 100 markers as standard, but others allow for a nearly unlimited number of markers by using very fast cloud storage software to store a much larger database of markers. When an AR application can recognize more 2D objects, it enables developers to create more robust applications that trigger more AR effects.
- 3D object tracking. 3D object tracking expands the opportunities for AR developers by allowing 3D objects, such as a cup or a ball, to be used as AR markers that can then be recognized by the app to trigger an AR effect. This can be useful for advertising-related applications, and also for use in games. For example, toys can come alive and talk in AR because they can be recognized as unique entities by this type of tracking. While 3D tracking is not yet a universal capability among SDKs, it is becoming more common and affords a developer greater latitude in creating compelling, lifelike AR applications.
- SLAM support. Simultaneous Localization And Mapping has become an increasingly desirable feature in an AR SDK because it allows for the development of much more sophisticated applications. In layman’s terms, SLAM allows the application to create a map of the environment while simultaneously tracking its own movement through the environment it is mapping. When done right, it allows for simple depth information to convey to the camera where things are in a room. For example, if there is a table and an AR image is appearing over the table, SLAM allows the application to remember where the table is and to keep the AR image over the table. SLAM also allows users to look around a 3D image, and move closer to it or farther from it. It combines several different input formats and is very hard to do accurately. Some SDKs offer this functionality, but it is quite challenging and processor-intensive to make it work smoothly, particularly with a single camera. Look for an SDK that can handle SLAM effectively with a single camera.
- Unity support + native engine. For some applications, it is important that an SDK supports the Unity cross-platform game engine. Unity is one of the most accessible ways to produce games and other entertainment media, but it also simplifies the development process, since Unity applications can be run on almost all hardware. Most SDKs operate through Unity to allow for some very sophisticated AR experiences. However, using Unity as a framework can be disadvantageous in certain applications because it is highly resource-intensive and can slow down AR experiences. As a result, some SDKs offer their own engines that function natively on iOS or Android devices, without the need for Unity. This can be used to create much smoother experiences with robust tracking for each. However, it does introduce the issue of having a coding team for each. This is not an issue if a developer is only planning to release on one platform. In this case, a developer could find that an application runs substantially faster when coded natively, rather than through a Unity plug-in.
- Wearables support. Smart glasses and other wearables allow AR experiences to be overlaid on the world we see before us, while offering a hands-free experience. As the use of wearables grows, developers producing content for future devices need to ensure that the software they are working with will support the devices they are building for.
When you have narrowed down your candidate SDKs based on these and other evaluation criteria, I recommend that you try them out. Many providers offer free trial versions that may include a subset of the features found in their professional versions. This will enable you to determine whether its interface suits your style of working and the type of application you are developing.
My final piece of advice is to examine the costs of SDKs carefully. Some have licensing models that are priced on the number of applications downloaded or AR toys sold. This may be the most critical purchase criterion, particularly for independent developers.
Albert Wang is CTO of Visionstar Information Technology (Shanghai) Co., Ltd., an AREA member and developer of the EasyAR SDK.