Marker based Augmented Reality
Augmented Reality has been around for some time; but until the relatively recent advent of smart phones with compasses and GPS, the major focus of open source AR software has been around markers that register images superimposed on the a camera view. The canonical implementation is ARToolKit from Washington University which has spawned implementations in multiple programming languages. In addition to ARToolKit derivatives, other marker based AR software are Goblin and Goblin XNA which was developed using C# and .NET, Simplified Spatial Target Tracker (SSTT) Visualizer developed by Hartmut Seichter in C++, and Studierstube Tracker which is conceptually similar to ARToolKit but is a different code base designed for mobile phones. Here is the sampler list for Augmented Reality marker software.
Flash/Shockwave:
- FLARToolKit: http://www.libspark.org/wiki/saqoosha/FLARToolKit/en
- FLART example: http://www.adobe.com/devnet/flash/articles/augmented_reality.html
- EZFlar: http://www.ezflar.com/home/show_home (create FLAR app on line), code available: http://github.com/tcha-tcho/EZFLAR
- DART: http://www.cc.gatech.edu/dart/index.htm
C family:
- ARToolKit: http://www.hitl.washington.edu/artoolkit/download/
- Studierstube Tracker: http://studierstube.icg.tu-graz.ac.at/handheld_ar/stbtracker.php
- Goblin: http://www1.cs.columbia.edu/~eaddy/goblin/
- Goblin XNA: http://www.codeplex.com/goblinxna
- SSTT Visualizer: http://technotecture.com/ssttviz-download
Java:
- InstAR (ARToolKit based) http://code.google.com/p/instar/
- jARToolKit (Java binding to ARToolKit): http://sourceforge.net/projects/jartoolkit/
- NyARToolkit for Java/c#/AndroidL http://nyatla.jp/nyartoolkit/wiki/index.php?NyARToolkit%20for%20Java.en
Processing:
- Bryan Chung: http://www.bryanchung.net/?p=227
Mobile Augmented Reality
Mobile Augmented Reality places information, markers, and 3d objects in the camera view of a mobile device based upon location derived from GPS or positioning information and direction, typically from compass and accelerometer. Markers are typically not used in mobile augmented reality platforms such as the iPhone or Android based phones.
Android and iPhone:
- Layar: http://layar.com/api/
- Wikitude: http://www.wikitude.org/category/developer
iPhone:
- iphonearkit: http://code.google.com/p/iphonearkit/ and http://github.com/zac/iphonearkit/
- locative (Anselm Hook): A bare bones locative media server and client for sharing favorite places http://github.com/anselm/locative
- Anselm Hook: augmentia: start of an iPhone AR app leveraging sio2 and http://github.com/anselm/augmentia
Android:
- OpenGamaray: http://sourceforge.net/projects/opengamaray/
Hardware
Augmented Reality hardware projects abound ranging from hacking heads-up displays (HUD) to wearable computing. Pranav Mistry recently announced that the sixthsense project will be open sourced, probably so we won't have to resort to this:
There are also a lot of cool human computer interaction (HCI) projects coming from assistive technology that can be used to expand the AR experience. Alternative modes interaction include using eye tracking for input and sound to provide additional cues that improve the user experience. Also listed are a couple just plain cool projects
User Input:
- eyewriter: http://www.eyewriter.org/
- MICOLE: http://micole.cs.uta.fi/software/ haptics
Sound:
- soundmaps: http://makingmaps.net/2008/03/25/making-maps-with-sound/
- isonic: http://www.cs.umd.edu/hcil/audiomap/
- auditory icons: http://www.billbuxton.com/AudioUI06icons.pdf
Cool Stuff:
- Spads and Fokkers: http://spadsandfokkers.sourceforge.net/
- Johnny Lee: http://johnnylee.net/projects/ from wii remote hacks, to low cost eeg for brain control, kinetic typography
- EEG as HCI interface? : http://openeeg.sourceforge.net/doc/index.html
This just scratches the surface of AR apps. Mashups between other software and public Augmented Reality APIs, such as Wikitude, are just starting.