User:MartinLechner4/sandbox

The Augmented Reality Markup Language (ARML) is a data standard to describe and interact with Augmented Reality (AR) scenes. It is developed within the Open Geospatial Consortium (OGC) by a dedicated ARML 2.0 Standards Working Group. ARML consists of both an XML grammar to describe the location and appearance of virtual objects in the scene, as well as ECMAScript bindings to allow dynamic access to the properties of the virtual objects, as well as event handling, and is currently published in version 2.0. ARML focuses on visual Augmented Reality (i.e. the camera of an AR-capable device serves as the main output for Augmented Reality scenarios).

Data Model
ARML is built on a generic object model that allows serialization in several languages. Currently, ARML defines an XML serialization, as well as a JSON serialization for the ECMAScript bindings. The ARML object model consists of three main concepts:
 * Features represent the physical object that should be augmented.
 * VisualAssets describe the appearance of the virtual object in the augmented scene.
 * Anchors describe the spatial relation between the physical and the virtual object.

Feature
The definition of a Feature is reused from the Geography Markup Language (GML) and describes the physical object that should be augmented. The physical object is described by a set of metadata, including an ID, a name and a description. A Feature has one or more Anchors.

Anchor
An Anchor describes the location of the physical object in the real world. Four different Anchor types are defined in ARML:
 * 1) Geometries
 * 2) Trackables
 * 3) RelativeTo
 * 4) ScreenAnchor

Geometries
Geometries describe the location of an object through a set of fixed coordinates. WGS84 (latitude, longitude, altitude) is used as the default coordinate reference system, other arbitrary coordinate reference systems can be supplied if required. ARML allows 0- (Point), 1- (LineString) and 2-dimensional (Polygon) geometries. Geometry Anchors reuse the syntax as defined in GML3. As an example, the following snippet defines the location of the Wiener Riesenrad.

Trackables
Trackables are patterns that are searched, recognized and tracked in the video screen coming from the camera of the device. A wide variety of different tracking technologies exist, including QR codes, Natural features, 3D and Face Tracking. As all these tracking types use different algorithms and technologies, the definition of a Trackable is abstracted and split into two parts, a Tracker and its associated Trackables. A Tracker describes the technology (or algorithm) with which its associated Trackables should be tracked, using URIs identifying the algorithm. The Trackable itself describes the pattern the algorithm should look for in the video stream.

Example: A natural feature tracker and an associated Trackable