- Augmented reality is a very promising technology. In some ways it is better than virtual reality. Augmented reality has the advantage of including the real-life image into the experience. Virtual reality is 100% simulated and therefore has different applications.
- Nearly everyone enjoys an improved perception of reality at any given moment (unless you are living in denial, of course).
- For example, imagine overlaying the location information as you take a photo. You can choose to overlay information about that specific location directly on top of the image you are viewing. That is what we are building as these posts unfold.
- Developers today can take advantage of this capability today and create apps that are compelling and useful. There is a market opportunity here.
- Augmented Reality applications offer great value to a variety of users.
- I will create a series of posts. These posts will:
- Discuss what types of work you should do on the device itself and in the cloud
- Implement a simple proof of concept on how you might implement such a system.
- Teach you about the role of cloud computing for augmented reality.
- As an example, the cloud plays a crucial role processing sensor information generated by the device (phone, tablet, etc).
- I will show you how a cloud-based application can receive GPS / location information from a mobile device and process that location information by doing some lookups on other web services or websites.
- This approach makes sense because the cloud can perform the needed tasks at high scale and speed.
- We will focus here with Windows 8 devices. Other form factors include:
- Head mounted
- Eye glasses (Google offers a product)
- Contact lenses (military projects)
- Virtual Retina displays
- You can read more about them here: http://en.wikipedia.org/wiki/Augmented_reality
Been there, done that!
- Many of us are already enjoying Augmented Reality today
- Figure 1 depicts the first down line in professional football
- In virtual reality, time, physical laws and material properties may no longer be thought of as true, in contrast to the real-world environment.
- There are many applications for augmented reality
- Tourism and sightseeing
- Add historic event to view
- Simulate planned construction projects
- In combat AR provide useful information to the soldiers on where they are, how many enemies are surrounding them and it can spot an enemy that the soldier might not be looking at. AR can be a third eye for the soldier indicating him if there is someone on his back.
- Use your imagination – the possibilities are quite significant (medical, manufacturing, photography, teaching, exploring)
Example Scenario that I will code up
Tablet has a sensor. The sensor in this case is GPS. It sends the GPS coordinates to a cloud application running in Windows Azure. This is done with a simple web service call from a Windows 8 application.
The Windows Azure cloud application extracts the GPS coordinates send by the Windows 8 application.
The Windows Azure cloud application makes a call into any number of web services. I will demonstrate a call into Google maps. I could have easily called into Bing's mapping API. My point is show interoperability with the rest of the open web.
The Google mapping API or Bing mapping API then looks up information about the GPS coordinates, such as street, city, neighborhood, etc.
The Windows Azure cloud application then packages up the results to send back to the Windows 8 client application.
The Windows 8 application receives the coordinates and displays them.
The street, city, neighborhood information gets overlaid on top of the live camera view, thus fulfilling the promise of augmented reality.
It's all about the back-end
- The cloud back-end supporting augmented reality applications is essential.
- It can provide a variety of resources not available to the client application front-end.
- There may be a big data store to support augmented reality applications. Azure has an excellent storage / scaling offering.
- Data may often originate from a relational database. SQL Database is an offering that lowers database costs and simplifies provisioning and deployment of databases.
- Storage may be in various forms, such as video, text, graphics. Azure supports tables, blobs, queues for such purposes.
- Your application may be global in scope, requiring you to manage traffic on a global basis, providing the least latency and the best coverage
- Caching may be needed to minimize latency for video and images, even application level programming objects
- A messaging infrastructure may be needed to allow asynchronous communication between client application and cloud. Simple Storage Queues are available and for more sophisticated examples you can use Service Bus Queues.
- Identity management might be required to authenticate users from Active Directory, Google, Facebook, Yahoo and Live.
- Media services is useful for uploading video and adding watermarks and custom encoding of content
- CDNs make it convenient to support users who need minimized latency while accessing graphics and videos.CDNs also support streaming video content, that could be overlayed on top of a camera view.
- Networking supports the ability to host Virtual Private Networks (VPN) supporting tight integration between the cloud and on-premises resources.
- The next post will begin by creating a cloud application to support augmented reality application using Windows 8.