Developing software often involves the use of a Software Development Kit (SDK or “devkit”). A SDK is typically a set of development tools that allows for the creation of applications for a certain software package or software framework, and Augmented Reality has several SDKs you can use. In this post I’d like to cover a few of the SDK currently on the market, including SDK versions for mobile.
WHY USE A SDK?
A SDK helps simplify the layers needed to develop software, you can think of it as a tool-shed, with all the tools necessary to help you create an amazing AR application. If you’ve done any sort of development before you’ll know that there are also APIs you can use (Application Programming Interface) which are basically building blocks you can utilize to write your own applications from scratch.
The SDK however, as exampled above, is more like a workshop with variety tools to make it easier and faster for software developers to write programs. SDKs may provide helper code libraries, reference applications and often come with comprehensive vendor documentation to help create programs. In this case, to create Augmented Reality. Today there are even tools for non-developers, to create your own AR experience within minutes, and with no developer experience at all – I’ll cover those off too!
WHICH SDK FOR AR?
An SDK is a set of libraries which hold reusable code that you may use to develop applications. Whether those applications will run on Windows, Android, an iPad or iPhone, or in a Flash application, will determine what SDK you should be using.
To write an iPhone application you write code in a language called Objective-C. Given that when an app is written much of the base features will be identical (e.g. touch interface, gestures, etc.) an SDK allows any application developer to implement basic fundamentals quickly and easily via the reusable code (libraries). Coding shouldn’t be a case of reinventing the wheel each time; a good SDK makes sure this is never the case!
*UPDATE 24th may 2014* An exceptional summary of Augmented Reality SDKs available can be viewed here. It’s not completely exhaustive (for example a small Austrian firm named ViewAR is missing), but it’s real good nonetheless!
The purpose of an Augmented Reality SDK is to simplify some of the following components within the application: AR recognition, AR tracking and AR content rendering. The recognition component is simply explained as the brain of the AR app. The AR SDK empowers your application (e.g. iPad, PC, etc.) with the ability to understand what it’s actually looking at. The tracking component of the development process is simply explained as the eyes of the AR experience, and the content rendering is your imagination! Put them all together properly and often magic happens!
The SDK gives the developer an array of tools required to recognize, track and render their AR application in the most efficient manner. The reality however is that tools are available for any given task in day-to-day life, and yet they definitely don’t offer the same quality or precision. So in this article I’d like to establish key features and benefits for developers (new to Augmented Reality or new to developing) to help decide which AR SDK to use, and what the key features and benefits of each are.
SLAM for Augmented
TRACKING TYPES EXPLAINED
There are various intricacies to creating an Augmented Reality experience. Often the experience commences with the simple task of tracking a marker, a person or a location. Each of these require a different development strategy, and in the best instances, a combination of development components to make the AR experience appear seamless.
Augmented Reality tracking methodologies include:
- Sensory: GPS (location based), Compass (navigational)
- Sensory: Gyroscope (angle of entry), Accelerometer (speed of entry)
- Image based, near field: pre-trained (or pre-laoded imagery), cloud based (talking to a database over wireless) or user-defined (programs like Metaio Creator allow you to define your own tracking image).
- 3D based: otherwise known as “Point Cloud“. In short, this is the XYZ coordinates of an object which has been scanned (usually by 3D scanner, or camera) and all it’s points (all it’s coordinates) mapped onto a Point Cloud. These can then be sued to create Augmented Reality tracking, but also 3D CAD models for manufactured parts, metrology/quality inspection, and a multitude of visualization, animation, rendering and mass customization applications.
- Live 3D based: This system is borrowed from the world of robotics and called simultaneous localization and mapping (SLAM). It is a technique used by robots and autonomous vehicles to build up a map within an unknown environment (without a prior knowledge), or to update a map within a known environment while at the same time keeping track of their current location.
- Human extremities: facial tracking (including recognition + tracking), fingers and bodies. No limit here!
- Robot: yes, it had to converge, i.e. robots + Augmented Reality. Just take a look at Sphero and you’ll see the power of this sort of technology. It’s fun, in the case of Sphero, but I know for a fact that the US Army has also asked Sphero for a “war friendly” bomb-dropping version too!
ROBOT AUGMENTED REALITY TRACKING
- Set up a Development Environment
- Download your AR SDK of choice
- Install and run samples
While I can’t possibly explain each in a single paragraph – whether you’re new to dev or an old hat at it, there will be a learning curve. As adoption increases it seems that Unity 3D is perhaps a good start for someone that is new to coding, and Augmented Reality deployment.
UNITY & AUGMENTED REALITY
AR brings radical innovations to countless areas, from guiding tourists and selling air conditioning to building aircraft carriers. But it can go even further than that. Some predict AR will bring about the era of natural computing that will free us from staring into monitors all day.
Films like Iron Man or Minority Report show what this could one day look like. But AR is already a practical feature that provides a livelihood to a number of studios. One of them is Dutch studio TWNKLS, which won the industry’s Auggie Award at AWE2013 with its Otolift app. Using a few markers and an iPad, it shows clients exactly how a staircase lift would change their home and gathers precise measurements for manufacturing.
Unity is a fully integrated development engine that provides rich out-of-the-box functionality to create games and other interactive 3D content. ou use Unity to assemble your art and assets into scenes and environments; add lighting, audio, special effects, physics and animation; simultaneously play test and edit your game, and when ready, publish to your chosen platforms, such as Mac, PC and Linux desktop computers, Windows Store the Web, iOS, Android, Windows Phone 8, Blackberry 10, Wii U, PS3 and Xbox 360.
Unity supports the creation of almost any 2D or 3D interactive content imaginable:Games, including: Browser-based MMOGs, First-person shooters, Racing games, Real-time strategy games, Third-person shooters, Roleplaying games, Side-scrollers, …and many more. Visit the Unity Gallery to see some examples of games.
At this point of the post I’d like to focus on non-developers, i.e. anyone interested in creating Augmented Reality content, but perhaps have no developer skills. Two very special tools which were released earlier this year allow non-developers to create Augmented Reality content, easily, within minutes (literally) and without any development skills at all! Wow!
I hope you’ve enjoyed some of the coverage and look forward to delving into each SDK with me.The future is bright for Augmented Reality and the sooner we all get involved, the better the final experience will be!
The intuitive drag and drop interface will get you started creating AR scenarios in minutes. Use images and published materials or even real-life objects as the targets for your 3-D content in your AR experiences. Deliver your app for free with a watermark or as a custom branded app hosted in the Metaio Cloud or on your own servers. Create your apps and deliver them to Android and iOS mobile devices or as a stand-alone desktop application.
With its simple drag-and-drop interface, the cloud-based Layar Creator is the perfect do-it-yourself tool to quickly and easily build and manage engaging interactive print experiences. Sign up to join the over 55,000 publishers already using the Layar Creator to add interactivity to their print content.