Even more cool Augmented Reality stuff coming out of Microsoft Research. My favorite shown is the SLAM projector, which combines Kinect with a Pico Projector. It can map an environment in real time and allows the user to project virtual things onto the physical world. For example, touching on a book can make a fountain of spheres appear, run down the pages onto the desk and off the desk into a trash can. It’s a very unreal experience.
More info including on video here on Engadget.
GART gets a service release tonight with version 1.0.1 now on CodePlex. This release is mostly for bug fixes and a few performance tweaks but we now allow finer control over how items are positioned in 3D space.
Here’s the 1.0.1 changelog:
Updated ARHelper.DistanceBetween to use changes suggested by Kenny Spade. The new code is much more accurate and maintainable and fixes issue 8759 where some points were being drawn on the wrong side of the user.
Removed WorldCalculationMode enumeration and WorldCalculationMode property from ARItem. The enumeration was replaced by the property ARItem.WorldCalculation, which can point at any function that will calculate and update an ARItem.
Added two methods to ARHelper that can be used with the ARItem.WorldCalculation property mentioned above. WorldFromGeoLocation and WorldFromRelativeLocation provide the functionality that was previously provided by the WorldCalculationMode enumeration.
Defaulted ARItem.WorldCalculation to point at ARHelper.WorldFromGeoLocation. This means that ARItems will be projected into WorldView using their GeoLocation property by default.
Added code to ARHelper.DistanceBetween to calculate the difference between two points in altitude. If both coordinates have valid altitudes, the difference will be calculated. Otherwise, the difference in altitude will be returned as zero. This will place items on the horizon whenever the altitude of the user or the item is unknown. This change resolves issue 8760.
HeadingIndicator did not scale and has been updated to use grid layout. Keep in mind that this control must still have a square aspect ratio for it to be drawn correctly.
OverheadMap_LayoutUpdated was being called very frequently and we were assigning a new clip on every call. We now check to see if the size has actually changed before creating a new geometry and updating the clip.
Removed event handlers from the map control that were attempting to disable panning but were not working.
Updated BingAR and SimpleAR samples to use Grid layout at the root instead of Canvas layout.
I just realized that I linked to GART in my previous blog post but never talked about it here. I’ve gotten so used to doing quick tweets on the run that I’ve forgotten to come back and do some real blogging. Must improve.
Anyway, from the GART Homepage here’s a description:
GART was created to help people quickly and easily build Augmented Reality applications for Windows Phone.
This kit is different from other AR kits in that it enables what we call “Geo AR”. Where other toolkits place virtual things on top of specially printed tags, this toolkit places information on top of real places in the world around you. It does this by tracking where you are and the direction you’re facing.
Geo AR apps are easy to write because all you need to provide is a collection of objects that have Latitudes and Longitudes. These can come from anywhere, for example a Bing restaurant search, a Flickr photo search or a Wikipedia article search. The framework then takes care of managing sensors and tracking where the user is in relation to the reference points. It can show where the points are in relation to user from a top-down perspective (on a map) or it can show where the points are as a virtual lens into the real world.
Visit the GART page for more information, videos and documentation on how to get started with the kit.
This past weekend I gave my first delivery of “Augmented Reality for Consumer Devices” at Houston TechFest. This presentation looks at three different approaches to doing augmented reality and has links to cool videos of each. It explains the steps for implementing each approach on your platform of choice and links to libraries that can help you get started quickly on Windows Phone. I also use this talk as a chance to plug GART and explain how it works behind the scenes. You can download my slide deck for this talk here.
So I just got my phone updated to the Beta 2 refresh of Mango based on these directions:
I also have the tools refresh from that same link and I’m ready to start looking into Augmented Reality. I know there’s already a really interesting Silverlight AR kit on CodePlex:
But I’m thinking more about location context sensitive augmented reality. More on this in the coming weeks, but here are the resources I’m looking into:
How to: Combine Silverlight and the XNA Framework in a Windows Phone Application
How to: Create a Base Camera Application for Windows Phone
How to: Use the Combined Motion API for Windows Phone
Inside the Mango Camera APIs
Let me know if you’re working on any AR projects. I’d really like to know what you’ve got cooking.