Although the actual appearance of the “augmented reality” term dates back to 1990, it came into the habitual use relatively recently. In particular, one of the most memorable events for fans of high technology event was the release of Google Glass smart glasses in 2014, which is a kind of headset for smartphones based on Android. In the development of this product, augmented reality technology was used, through which Google Glass provides the user with digital information about objects that they see themselves (and synchronously record with the help of the built-in camera). By 2017, the IT market has been saturated with a large number of augmented reality solutions, which indicates the extraordinary profitability of this industry. Therefore it is not surprising that many IT companies are implementing such difficult, though high-budget projects.
If your team plans to develop a project based on augmented reality technology for the first time, this article should help to solve one of the most important dilemmas faced by programmers at the beginning of the AR development workflow, namely, the choice of the framework. In particular, it contains the comparison of AR frameworks, which are most often used to create commercial applications.
Two principles of augmented reality applications operation
There are two basic principles of the augmented reality applications work: using markers and using information obtained through GPS and other sensors built into the user’s device. Let’s review these principles in more detail.
The first principle – use of markers. The data received via a video camera built into the user personal device is compared to the markers predefined in the application. In the case of coincidence, the augmented reality application performs a certain algorithm (for example, it provides the user with the characteristics of the goods seen in the store or draws a new graphic image over the object).
The second principle is based on the data obtained by the means of GPS, gyroscopes, accelerometers, etc. Data about the object, received from the in-built sensors is processed, resulting in the user obtaining the useful information directly on the screen of their personal device.
Augmented Reality SDK Comparison
Below is the Augmented Reality SDK Comparison of frameworks’ basic characteristics:
Metaio. Metaio offers paid and free versions of the SDK, designed to build marker (using the 512 predefined markers) and non-marker applications for Android, iOS, Windows, and Flash. Metaio recognizes 2D and 3D objects, supports LLA Markers, provides the ability to create 3D models in the .obj, .fbx and .md2 formats, and also allows working with tools for OpenGL – a platform-independent software interface for the 3D graphics processing.
Vuforia. Vuforia is a complete set of augmented reality development tools for marker based application. There are paid and free versions of Vuforia (the free lacks some options of the Cloud Recognition service). Among its features are processing of 2D and 3D graphics, simultaneous recognition of several objects, OpenGL support, built-in Smart Terrain™ service (for the augmentation of the landscape captured by the camera), etc. For most newcomers, this SDK is quite problematic in the application, due to the lack of detailed manuals.
D’Fusion. D’Fusion is by far one of the most advanced tools for the development of augmented reality interactive applications, which is offered both in paid and free versions. D’Fusion allows creating programs for Android, iOS, Flash and Windows. Among the capabilities of this development environment is the recognition of movements and complex elements such as the shapes of eyes and lips, cross-platform support, D’FusionCV renderer, the simultaneous identification of several markers, the usage of up to 500 predefined markers, etc. In addition, D’Fusion is very convenient for beginners, thanks to its intuitive graphical interface.
ARToolKit. ARToolKit is a set of software libraries for the development of open source augmented reality applications. Using ARToolKit, you can create marker based web applications for iOS, Android, Windows, Linux, SGI and MAC OS X (for each platform, the separate version of the development environment is used). Among the capabilities of this framework is the processing of 2D and 3D images, as well as complete support for the OpenGL specification in conjunction with the GLUT libraries. It is worth noting, though, that this tool is not very user-friendly. The examples given are rather complicated for newcomers to understand, and the general information given for training is not presented in sufficient volume.
ARmedia. ARmedia is a cross-platform development environment, available both in free and paid versions, designed to create applications for iOS, Android, Windows, and Flash. An additional special plugin – Google SketchUp – is needed to create markers in the real-time mode. This framework allows processing of data obtained by means of GPS, gyroscopes, accelerometers and magnetometers, and employs one of the most powerful 3D-trackers available at the market. Similar trackers created by Inglobe Technologies are widely used in the development of smart glasses software. One of the most notable ARmedia advantages is the availability of framework’s services and management capabilities through the cloud.
The following is a comparative table showcasing the characteristics of each mentioned AR framework.
One way or other, each of these frameworks is quite suitable for creating commercial augmented reality applications. The final choice of the development environment depends on the preferred marker recognition principle and the previous experience of the development team.