ARToolKit

ARToolKit is a computer vision tracking library that allows for the creation of augmented reality applications that overlay virtual imagery on the real world. To do this, it uses video tracking capabilities in order to calculate the real camera position and orientation relative to square physical markers in real time. Once the real camera position is known a virtual camera can be positioned at the same point and 3D computer graphics models drawn exactly overlaid on the real marker. So ARToolKit solves two of the key problems in Augmented Reality; viewpoint tracking and virtual object interaction.

ARToolKit was originally developed by Hirokazu Kato in 1999 and was released by the University of Washington HIT Lab. Currently it is maintained as an opensource project hosted on SourceForge with commercial licenses available from ARToolWorks. ARToolKit is one of the most widely used AR tracking libraries with over 160,000 downloads since 2004.

Features

 * Single camera position/orientation tracking.
 * Tracking code that uses simple black squares.
 * The ability to use any square marker patterns.
 * Easy camera calibration code.
 * Fast enough for real time AR applications.
 * Free and open source.

Operating systems
It is available for SGI IRIX, Microsoft Windows, Mac OS X and Linux-based systems. Recently it has also been ported to the Symbian operating systems and iPhone to support mobile AR applications.

Spinoffs and related

 * OSGART
 * ARTag - recently-created alternative to ARToolKit that uses more complex image processing and digital symbol processing for reliability and resistance to light. Only licensed for non-commercial purposes.
 * ARToolKitPlus - extended version of ARToolKit, only targeted to handheld users and developers of AR-oriented software. No longer developed.
 * Studierstube Tracker - Successor of ARToolKitPlus, many new features, but not free anymore.
 * Mixed Reality Toolkit (MRT) - University College London
 * FLARToolKit
 * NyARToolkit - an ARToolkit class library released for virtual machines, particularly those which host Java, C# and Android.
 * ARDesktop