Sustainability of Digital Formats: Planning for Library of Congress Collections

Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact
Format Description Categories >> Browse Alphabetical List

Augmented Reality Markup Language (ARML) 2.0

>> Back
Table of Contents
Format Description Properties Explanation of format description terms

Identification and description Explanation of format description terms

Full name Augmented Reality Markup Language (ARML) 2.0
Description

Augmented Reality Markup Language (ARML), standardized in the Open Geospatial Consortium (OGC) document 12-132r4 “allows users to describe virtual objects in an Augmented Reality (AR) scene with their appearances and their anchors (a broader concept of location) related to the real world. ARML 2.0 defines ECMAScript bindings to dynamically modify the AR scene based on user behavior and user input.” Wikitude World Browser developed and defined ARML in 2009 and expanded the definition with the formation of the OGC ARML 2.0 Standards Working Group (SWG) in 2011, followed by the approval of the OGC Augmented Reality Markup Language 2.0 Interface Standard (ARML 2.0) in February of 2015, referenced below. ARML 2.0 provides an interchange format for AR applications to describe AR scenes, focusing on vision-based AR.

ARML 2.0 format is specified as XML grammar and the XSD schema is provided.

General Concepts:

Included in the ARML 2.0 Standard is a Declarative and Scripting Specification, existing separately, but can work together for a “dynamic experience.” Declarative: describes objects in AR scene, serialized in XML. Scripting: allows dynamic modification to the scene and reactions to user-triggered events, using ECMAScript and a JSON serialization of the objects.

  • Feature: represents a real-world object that should be augmented, consisting of some metadata on the real-world object and one or more Augmentations (Anchor) describing where the Feature is located in the Composed Scene. GML Specification – an abstraction of a real-world phenomenon.
  • Anchor: Augmentations, defines link between digital/physical world (location) and describes where a particular Feature is in the real-world. Can either be Spatial Location – geometry tracked using location and motion sensors or Visual Pattern (markers, QR code, image reference) – detected and tracked in camera stream.
  • VisualAsset: describe how an Anchor should be represented in the Composed Scene. Can either be 2D (text or images) or 3D (model).

Document Structure of ARML 2.0:

Root Element <arml> contains the following elements:

interface ARElement: declarative, contains list of ARElement objects, most classes specified are derived from ARElement. Can have optional unique id property.

  • class Feature: inherits from ARElement. Properties include – name, description, boolean, metadata, and anchors.
  • interface Anchor: inherits from ARElement. Two types: ARAnchor – location of a Feature in real-world, used for virtual objects that are registered in the real world and move around on the screen as user moves around. ScreenAnchor – fixed location of a Feature on the screen. Objects have fixed location and remain static on screen.
  • interface ARAnchor: inherits from Anchor, describes registration (location) of a Feature in the real-world, can be declared using spatial coordinates, image, marker, or sound. Concrete types include: Geometry, Trackable, and RelativeTo.
    • class Geometry: inherits from ARAnchor. Used when Feature is registered using spatial coordinates and serves as a wrapper for GMLGeometries (reused and complying with the GML Specification) - allowed gml:Point, gml:LineString, and gml:Polygon. The default CRS is WGS84.
    • Trackable: general concept of a location of a Feature, describes something that is tracked and serves as the Anchor of a Feature. Two classes specify Trackable:
      • class Tracker: inherits from ARElement. Describes the tracking framework to track Trackables associated with the Tracker. See Notes for more information.
      • class Trackable: inherits from ARAnchor. Represents an object to be tracked, provides the actual Anchor of the Feature in the real-world.
    • class RelativeTo: inherits from ARAnchor. Defined relative to another ARAnchor, to the user, or relative to a Model.
  • interface VisualAsset: inherits from ARElement. The visual representations of the Features/Anchors on the screen.

Style Elements: optional, styling the virtual objects in the scene, typically in text/CSS format.

Script: scripting code, typically in ECMASCript or JavaScript.

Units are given in meters, virtual objects that have a size of ‘X’ meters will show on the screen as same size as real-world object and at the same distance in the camera view.

Uses of ARML 2.0

According to the standard, the “goal of ARML 2.0 is to provide an extensible standard and framework for AR applications to serve the AR use cases currently used or developed...ARML 2.0 needs to be flexible enough to tie into other standards without actually having to adopt them, thus creating an AR-­specific standard with connecting points to other widely used and AR-relevant standards.”

“Users interact with the virtual scene by moving around in the real world. Based on the movement of the user, the scene on the screen is constantly updated. A user can also interact with the scene by selecting virtual object, typically by touching them on the screen.” Note: how a user selects objects is application/device specific and outside the scope of ARML 2.0.

Production phase Middle to final state. According to Evaluation of User Interfaces Description Languages to Augmented Reality, July 2021, “ARML 2.0 aims to describe an AR scene, the objects contained in the scene, and their behavior.”
Relationship to other formats
    Defined via XML_Schema, W3C XML Schema Language
    Has earlier version ARML 1.0. Not described separately at this time. See Notes for more information.
    Affinity to KML, KML (formerly Keyhole Markup Language). ARML 2.0 uses ideas from ARML 1.0, which reuses concepts defined in OGC’s KML standard.
    Modification of GML, Geography Markup Language (GML). The GMLGeometries Point, LineString and Polygon are reused from the GML specification.
    May contain HTML_5, HyperText Markup Language (HTML) 5. Visual Assets may describe Label(s) using HTML. The standard states “The content can either be specified using a URI pointing to a HTML file or specified with inline HTML. Any HTML5 content is allowed, and implementations are encouraged to support the full feature set of HTML5.”
    May contain CSS, Cascading Style Sheet (CSS) File Format. Optional style elements use (typically) CSS for styling virtual objects in the scene.
    May contain JPEG, JPEG Image Encoding Family
    May contain PNG, PNG, Portable Network Graphics
    May contain GIF, Graphics Interchange Format (GIF)
    May contain ZIP, ZIP File Format (PKWARE)

Local use Explanation of format description terms

LC experience or existing holdings None
LC preference See the Recommended Formats Statement for the Library of Congress format preferences for GIS, Geospatial and Non-GIS Cartographic content.

Sustainability factors Explanation of format description terms

Disclosure An open standard, OCG 12-132r4 is published by the Open Geospatial Consortium (OGC).
    Documentation OGC® document: 12-132r4 | Version: 1.0, OGC Augmented Reality Markup Language 2.0 (ARML 2.0).
Adoption

Limited information.

Wikitude’s Blog Post, The ARML 2.0 Standard Has Been Approved – Now Official!, February 2015, states “After the incorporation of the user feedback, the first implementations of the standard were released to the world. We are currently aware of 4 live applications that are supporting ARML 2.0. The the three main AR Browser vendors, Layar, Metaio and Wikitude, teamed up to make the browsers’ interoperable utilizing ARML 2.0 as the common interchange format between them. Additionally, SK Telecom, based in Seoul, Korea, utilized ARML 2.0 as the main content format for their brand new AR browser – and we are aware of several other implementations by multiple companies.”

Layar’s website mentions ARML 2.0 in their news articles but all date back to 2014 or prior.

Apple Inc. acquired Metaio in 2015 and information about their use is limited. There are some blogs that speculate that Apple introduced ARKit months after acquiring Metaio’s SDK.

According to the Wikitude Support’s forum ARML 2.0 Integration, June 2017, “In the Wikitude App we do support ARML but within our SDK we currently do not.” and in Seriously Where is the Support for ARML 2.0 in the App and the SDK?, December 2018, “The SDK is not supporting ARML 2.0, and we currently don't have plans to include this in the SDK. If you wish to work with our SDK you can e.g., develop the AR experience using HTML.”

Comments welcome.

    Licensing and patents

No known license or patent concerns for generation and use of the format.

Comments welcome.

Transparency

Per the standard, ARML 2.0 is specified as an XML grammar and hence readable with a basic text viewer or editor.

Comments welcome.

Self-documentation

ARML 2.0 Features contain some metadata, including ID, name, and description.

ARML 2.0 Label’s content is described using HREF (URI pointing to HTML page rendered in Label) and SRC (holds the inline HTML content). The standard states “In SRC and HREF of a Label, that metadata can be referenced supplying special character sequences in the HTML... To reference metadata in the metadata tag, XPath 2.0 expressions [XML Path Language (XPath) 2.0] enclosed in $[ and ] must be used. The root node for the XPath evaluation is the metadata-tag in the Feature section.”

Comments welcome.

External dependencies

Per the standard, ARML 2.0 requires a device running an AR implementation with a component (screen, see-through-display) that virtual objects will be projected on and sensors (camera, GPS, orientation) to analyze the world.

Comments welcome.

Technical protection considerations

None.

Comments welcome.


Quality and functionality factors Explanation of format description terms

GIS images and datasets
Normal functionality

Per the standard, the "Geometry Anchor serves as a wrapper for GMLGeometries (reused and complying with the GML Specification) which essentially describes the spatial location of the Feature when it is registered in the real world using spatial coordinates...Geometry anchors can only be considered if an implementation is capable of detecting the user's current position and is thus capable of calculating spatial relationships between the user and the Geometry anchors."

Comments welcome.

Other
3D Model

Per the standard, ARML 2.0 GML Geometries, reused from the GML Specification, includes:

  • gml:Point (a single position)
  • gml:LineString(a list of positions, connected to form a line)
  • gml:Polygon (a list of positions, connected to form a planar area)

ARML 2.0 Normative References Documents include the COLLADA Specification, and the standard states “Implementations are encouraged to make sure that COLLADA Common Profile is fully supported as a minimum, however this is not a requirement.”

According to the COLLADA Overview 3D Asset Exchange Schema, “The intermediate language provides comprehensive encoding of visual scenes including: geometry, shaders and effects, physics, animation, kinematics, and even multiple version representations of the same asset.”


File type signifiers and format identifiers Explanation of format description terms

Tag Value Note
Filename extension See note.  There is no explicit mention of .arml file extension in the document 12-132r4. Martin Lechner in ARML - An Augmented Reality Standard, "ARML reduces the KML standard to the bare minimum." W3.org's presentation, ARML vs KARML, 2010, states that ARML is "based on a subset of KML." Comments welcome.
Pronom PUID See note.  PRONOM has no corresponding entry as of April 2023.
Wikidata Title ID Q17004788
Augmented Reality Markup Language. See https://www.wikidata.org/wiki/Q17004788.

Notes Explanation of format description terms

General

ARML 1.0: ARML 2.0 standard describes ARML 1.0 as proprietary interchange format for the Wikitude World Browser. ARML 1.0 was used as a non-standardized AR data format. ARML 1.0 is fairly restrictive and focuses on functionality Wikitude required back in 2009.

The ETSI GR ARF 001, Augmented Reality Framework (ARF); AR Standards Landscape states, ARML 1.0 was a working document extending a subset of KML (Keyhole Mark-up Language) to allow richer augmentation for location-based AR services. While ARML uses only a subset of KML, KARML (Keyhole Augmented Reality Mark-up Language) uses the complete KML format. KARML tried to extend even more KML, offering more control over the visualization. By adding new AR-related elements, KARML deviated a lot from the original KML specifications. ARML 2.0 combined features from ARML 1.0 and KARML.

MIME Type:XML Serialization Document Structure mentions style-mime and script-mime types.

Tracker Identification: As stated in the standard, a Tracker is identified by a unique URI and optional SRC, “Optionally specifies a URI which references the container the Tracker is operating in, and the associated Trackables can be found in. The following generic tracker URS is defined for every implementation: http://www.opengis.net/arml/tracker/genericImageTracker hosting a tracker, which takes jpeg, png or gif images as image targets. The Trackables can be zipped; the src property must then point to the zip file containing the Trackables.” Note: Links to ‘Not Found.’

As stated by Eyob Woldegiorgis in 3D Model Data Source for Wikitude, April 2014, “just like KML, ARML is also an XML-based schema developed by Wikitude. Since ARML is a subset of KML, it starts with <kml> tag.” This information appears to refer to ARML 1.0, but not plainly stated. Comments welcome.

History

In 2011, Martin Lachner, Wikitude’s CTO, and The Open Geospatial Consortium (OGC) established the Augmented Reality Markup Language 2.0 (ARML) Standards Working Group (SWG) to expand the definition of ARML 1.0. Wikipedia started ARML 1.0 in 2009 as their proprietary interchange format for their Wikitude World Browser and to enable developers to create content for AR Browsers. ARML 2.0 uses ideas from ARML 1.0 but was a complete redesign. ARML 2.0 was approved as an industry standard in 2015.


Format specifications Explanation of format description terms


Useful references

URLs


Last Updated: 12/18/2023