Authoring Augmented Reality experiences involves selecting and/or preparing digital assets, specifying physical-world targets with which they will be associated and specifying the interactions between the digital assets and physical targets.
Once the enterprise customer has clear project justification and purpose, the information assets are available (or created for this project) and the interactions are planned, the initiation of an AR project begins. The enterprise AR experience developer will need at least three groups of technologies to create the project. Some of these technologies may overlap with the tools and technologies available in the enterprise for other software projects. For example, the digital assets may need to be adjusted or manipulated using software tools for creating printed or digital communications projects.
AR Application Development Environment
AR development environments vary widely depending on audience, ranging from software engineers to people with no programming background.
A company may invest in developing a proprietary development environment with programmers who are experienced in designing workflows. This approach is frequently based directly or loosely on AR development methodologies available in the scientific literature (e.g., IEEE ISMAR proceedings). Some companies choose to create their own application development environment because they:
- Plan to license it to third parties
- Have unique requirements not met by existing tools or environments
- Have determined that building an internal tool is less expensive than licensing it from a third party, over the lifetime of a project
Many corporate and academic software and engineering research projects evolve into proprietary application development environments.
Commercial software libraries for experienced software engineers who need to create AR projects are also available. For example, these can be in the form of AR Software Development Kits (SDKs) or libraries. The enterprise pays a license fee to the software publisher and usually receives maintenance and support services to ensure that the software is up to date.
Vuforia is an example of an AR SDK licensed by PTC; it is popular with software engineers planning to:
- Create AR experiences triggered by 2D images and 3D objects
- Write or re-use a custom user interface
- Use a third-party application interface or “application engine” to develop user interfaces and interactivity (e.g., Unity)
- Use one or more third-party products to deliver a complete solution.
Other commercial software libraries used in enterprise AR projects include Inglobe Technologies ARmedia. It includes the following features:
- Advanced tracking (Face, SLAM, 2D and 3D) libraries
- Rendering engines
- Support for geolocation-based AR applications (using GPS and compass observations)
- Deployment on iOS, Android, Windows
- Off- and online applications
Other companies offering AR SDKs include Layar (acquired by Blippar), Wikitude, String, 13th Lab (acquired by Oculus), Seac02, ARPA Solutions, Total Immersion, Hewlett Packard, Diotasoft, Infinity AR, MobLabs, ARToolworks (acquired by DAQRI) and Catchoom.
A page on the SocialCompare site provides comparisons of features of AR SDKs from these companies and others (note that some projects listed on the SocialCompare site are no longer available).
Research groups offering AR SDKs as part of their projects include VTT, Fraunhofer IGD and HIT Labs NZ.
In cases where SDKs do not include libraries for developing user interactions, developers can incorporate the Unity 3D game engine.
For AR developers with minimal or no programming skills, there are alternatives to using SDKs. Wikitude, Layar, Metaio and Catchoom offer visual programming or “drag and drop” interfaces for AR application development. These take less time and permit reuse of frequently used tools and sophisticated libraries.
Asset Databases
In addition to using an application development environment, developers track assets and interactions using a database such as Microsoft SQL, IBM DB2 or Oracle, or with a Relational Database Management System, such as SAP HANA. At this time, only SAP has added AR-specific features to its HANA product line.
Target Feature Extraction
A third group of technologies that may be useful for AR developers are feature extraction libraries. These are algorithms used as part of a tracking system and, therefore, are usually part of an AR SDK such as Vuforia, but they can also be developed or acquired separately. There are many third-party solutions. For example, SLAM (Simultaneous Location and Mapping) libraries for AR are available from Flyby Media and Imperial College London. The OpenSlam site provide more information on sources of SLAM technology.
Cortexica offers a feature extraction library for garments and accessories that can be incorporated into any third party application, and Catchoom provides its hosted visual search engine.
More background about image recognition technologies is available in Image Recognition Technologies.