| Augmented Reality applications need a Web Service Back-End. Here is a 90-Day No obligation, totally free offer to use Windows Azure as your web service for Windows 8 Clients.
|| You get: Compute / 750 small compute hours per month, Web sites / 10 web sites, Mobile services / 10 mobile services, Relational database / 1 SQL database, SQL reporting / 100 hours per month, Storage / 35GB with 50,000,000 storage transactions, Bandwidth / unlimited inbound & 25GB outbound, CDN / 20GB outbound with 500,000 transactions, Cache / 128MB, Service bus / 1,500 relay hours and 500,000 messages
| Step 0: What we will build. Augmented Reality, Windows 8, and Cloud Computing–How to implement with real code
|| High level introduction to our finished application.
| Step 1–Augmented Reality, Windows 8, and Cloud Computing–How to implement with real code
|| Introduction. What is Augmented Reality
| Step 2–Augmented Reality, Windows 8, and Cloud Computing–How to implement with real code
|| Building the first part of our Azure back-end.
| Step 3–Augmented Reality, Windows 8, and Cloud Computing–How to implement with real code (Implementing the Cloud Back-End)
|| This post provides all source code and explanation for the Azure back-end. This is the back-end for the augmented reality Windows 8 Client.
| Step 4–Augmented Reality, Windows 8, and Cloud Computing–How to implement with real code ...
|| This post provides all source code and explanation for the Windows 8 Client (Augmented Reality Demo). The augmented reality Windows 8 Client calls into the Azure back-end described in step 3 above.
| Source Code - Web Service Back End
|| This is the Windows Azure Project that Windows 8 Clients call into
| Source Code - Windows 8 Client
|| This is the Augmented Reality Windows 8 Client
Welcome to Augmented Reality - The Future is Now
- 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:
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