ARML Introduction

Augmented Reality (AR) Specification Based on KML with Extensions

Workgroup:
Markus Tripp, Mobilizy GmbH
Robert Rice, Neogence Enterprise
Martin Lechner, Mobilizy GmbH

Introduction

In 2009 mobile augmented reality (AR) browsers became very popular on the latest generation of smart phones (iPhone, Android, Symbian, ...). The applications use the camera view of the phone and overlay it with points of interest around your current position. The exact position and the direction you are looking at is determined by GPS, compass and accelerometer sensors of the mobile phones. This is how AR browsers bring augmented reality experience to a quite big number of users.

Most AR browsers display points of interest (POIs) around your current location. Each point is characterized by several attributes like geo-coordinates (longitude, latitude, altitude), name, description, images, address and other information. Each AR browser had its own interface (API) and data structure to model those points of interest.

ARML is an initiative to standardize the way points of interest are described. Similar to web browsers this would enable content providers to create their data once and it can be viewed across all browser that support the standard. As KML is already a very popular format (e.g. Google Earth) we decided to base the ARML specification on KML and extend it with AR specific structure. Also many companies and organizations have already their data in KML available and there are many KML converters available to transform existing data. Additionally Google Earth is an easy to use interface to create KML data even by non-technical people.

KML is an open standard officially named the OpenGIS KML Encoding Standard (OGC KML). It is maintained by the Open Geospatial Consortium, Inc. (OGC). The complete specification for OGC KML can be found at http://www.opengeospatial.org/standards/kml/. Additional interesting sources are: KML Documentation at Google Code and the KML Interactive Sampler.

Wikitude World Browser from Mobilizy is the first AR browser that natively supports ARML. If you specifically want to create content for Wikitude please read the Wikitude4 specification.

Examples

Very Simple ARML Document

The simplest ARML document es just plain KML. Any ARML compliant browser must support this document. Only the elements <kml>, <Document>, <Placemark>, <name>, <description>, <Point>, <coordinates> are required.

simple.xml:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>        
        <Placemark id="153630">
            <name>Getreidegasse</name>
            <description>
                Getreidegasse (also known as Grain Lane) is a busy shopping street in the Old Town section of Salzburg. 
                The house at no. 9 Getreidegasse is where the famed Wolfgang Amadeus Mozart was born and lived ...
            </description>
            <Point id="153630">
                <coordinates>13.048056,47.797222,432.0</coordinates>
            </Point>
        </Placemark>
    </Document>
</kml>
        

Wikitude World Browser:

If no specific styles for icons and bubble (balloon) are defined, only the standard layout is used.

Simple ARML in Wikitude World Browser

Google Earth:

Same document opened in Google Earth.

Simple ARML in Google Earth

Advanced ARML Document (Wikitude Example)

advanced.xml:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
     xmlns:ar="http://www.openarml.org/arml/1.0"
     xmlns:wikitude="http://www.openarml.org/wikitude/1.0"
     xmlns:wikitudeInternal="http://www.openarml.org/wikitudeInternal/1.0">

    <Document>
        <ar:provider id="mountain-tours-I-love.com">
            <ar:name>Mountain Tours I Love</ar:name>
            <ar:description>My preferred mountain tours in the alps. Summer and Winter.</ar:description>
            <wikitude:providerUrl>http://www.providerhomepage.com </wikitude:providerUrl>
            <wikitude:tags>travel, hiking, skiing, mountains</wikitude:tags>
            <wikitude:logo>http://www.mountain-tours-I-love.com/wikitude-logo.png </wikitude:logo>
            <wikitude:icon>http://www.mountain-tours-I-love.com/wikitude-icon.png </wikitude:icon>
        </ar:provider>
        <Placemark id="123">
            <ar:provider>mountain-tours-I-love.com</ar:provider>
            <name>Gaisberg</name>
            <description>Gaisberg is a mountain to the east of Salzburg, Austria</description>
            <wikitude:info>
                <wikitude:thumbnail>http://www.mountain-tours-I-love.com/gaisberg-thumb.png </wikitude:thumbnail>
                <wikitude:phone>555-9943</wikitude:phone>
                <wikitude:url>http://en.wikipedia.org/wiki/Gaisberg </wikitude:url>
                <wikitude:email>info@mountain-tours-I-love.com</wikitude:email>
                <wikitude:attachment>http://www.mountain-tours-I-love.com/gaisberg-map-to-print.pdf </wikitude:attachment>
            </wikitude:info>
            <Point>
                <coordinates>47.81,13.11,1158</coordinates>
            </Point>
        </Placemark>
        <Placemark id="534">
            <ar:provider>mountain-tours-I-love.com</ar:provider>
            <name>Untersberg</name>
            <description>The Untersberg is a mountain massif of the Berchtesgaden Alps, between Berchtesgaden, Germany and Salzburg, Austria.</description>
            <wikitude:info>
                <wikitude:thumbnail>http://www.mountain-tours-I-love.com/untersberg-thumb.png </wikitude:thumbnail>
                <wikitude:phone>555-9945</wikitude:phone>
                <wikitude:url>http://en.wikipedia.org/wiki/Untersberg </wikitude:url>
                <wikitude:email>info@mountain-tours-I-love.com</wikitude:email>
                <wikitude:attachment>http://www.mountain-tours-I-love.com/untersberg-map-to-print.pdf </wikitude:attachment>
            </wikitude:info>
            <Point>
                <coordinates>47.52,12.62,1852</coordinates>
            </Point>
        </Placemark>
    </Document>
</kml>
        

As you can see in the advanced example above the AR specific and Wikitude specific extensions are defined using XML namespaces. The ar namespace is used for tags that must be available on all AR browsers. As each browser has specific features not available on other browsers we added support for browser specific namespaces and extensions. In the case of Wikitude these are the tags wikitude and wikitudeInternal.

Wikitude World Browser:

Advanced ARML in Wikitude World Browser

Google Earth:

Cursor is hovered over Mozarteum University of Salzburg.

Advanced ARML in Google Earth