# Lenguaje de Etiquetado de Realidad Aumentada

El Lenguaje de Etiquetado de Realidad Aumentada (ARML) es un estándar de datos para describir e interactuar con escenas de realidad aumentada (AR). Ha sido desarrollado dentro del Open Geospatial Consortium (OGC) por un Grupo de Trabajo de Estándares ARML 2.0 determinado para esta tarea. ARML consiste tanto en una gramática XML para describir la localización y apariencia de objetos virtuales en la escena, así como en interfaces ECMAScript para permitir acceso dinámico a las propiedades de objetos virtuales, así como manejo de eventos, y está actualmente publicado en la versión 2.0. ARML se enfoca en la realidad aumentada visual (por ejemplo, la cámara de un dispositivo capacitado para AR sirve como la salida principal para los escenarios de realidad aumentada).

## Modelo de Datos

ARML es construido sobre un modelo de objeto genérico que permite la serialización en varios lenguajes. Actualmente, ARML define una serialización XML, así como una serialización JSON para las interfaces ECMAScript. El modelo de objeto ARML consiste en tres conceptos esenciales:
* Las Características representan el objeto físico que debe ser aumentado.
* Los Activos Visuales describen la apariencia del objeto virtual en la escena aumentada.
* Las Anclas describen la relación espacial entre el objeto físico y el virtual.

### Característica

La definición de una Característica es reciclada del Geography Markup Language (GML) y describe el objeto físico que debe ser aumentado. El objeto físico es descrito por un conjunto de metadatos, incluyendo un ID, un nombre y una descripción. Una Característica tiene una o más Anclas.

### Anclas

Un Ancla describe la localización del objeto físico en el mundo real. Cuatro tipos de Anclas diferentes son definidos en ARML:
* Geometrías
* Rastreables
* Relativo A
* Ancla de la Pantalla

#### Geometrías

Las Geometrías describen la localización de un objeto a través de un conjunto de coordenadas establecidas. WGS84 (latitud, longitud, altitud) es usado como el sistema de coordenada por defecto, otros sistemas de coordenadas arbitrarios pueden ser suministrados si es necesario. ARML permite geometrías 0- (Point), 1- (LineString) y 2-dimensional (Polygon). Las Anclas Geométricas reutilizan la sintaxis definida en GML3. Por ejemplo, el siguiente código define la localización del Wiener Riesenrad.

#### Rastreables

Los Rastreables son patrones que son buscados, reconocidos y rastreados en la pantalla de video proveniente de la cámara del dispositivo. Una amplia variedad de diferentes tecnologías de rastreado existen, incluyendo códigos QR, monumentos naturales, tecnología de rastreo 3D y Rastreo de Rostros. Como todos estos tipos de rastreo usan diferentes algoritmos y tecnologías, la definición de un Rastreable es abstraída y dividida en dos partes, un Rastreador y sus Rastreables asociados. Un Rastreador describe la tecnología (o algoritmo) con la cual sus Rastreables asociados deben ser rastreados, usando URIs identificando el algoritmo. El Rastreable en sí mismo describe el patrón que el algoritmo debe buscar en la secuencia de video. Ejemplo: Un rastreador de característica natural y un Rastreable asociado

#### Relativo A

Las Anclas Relativo A permiten la definición de una ubicación relativa a otras Anclas o a la posición del usuario. La primera de estas dos permite la disposición de una escena y la ubicación de todos los objetos visuales incluidos basados en una única Ancla, como un Rastreable situado en una mesa. La segunda tiene en cuenta escenarios donde la ubicación actual del usuario es irrelevante. Los objetos visuales son simplemente situados alrededor del usuario, sin tener en cuenta su ubicación real.

#### Ancla de la Pantalla

Contrario a los tres anteriores tipos de Anclas, las Anclas de Pantalla no describen una ubicación en la escena virtual tridimensional. Más bien, definen un área en la pantalla del dispositivo, permitiendo elementos como barras de estado y otros parecidos.

### Activos Visuales

Los Activos Visuales describen la apariencia de los objetos virtuales en la escena aumentada. ARML permite describir varios tipos de Activos Visuales, como texto simple, imágenes, contenido HTML y modelos 3D. Los Activos Visuales pueden ser orientados (ya sea siempre de frente al usuario, o a mantener una orientación estática específica) y escalados. Adicionalmente, las condiciones de visibilidad pueden ser aplicadas (por ejemplo, el Activo es solamente visible en la pantalla si la distancia al usuario está dentro de ciertos límites).

## Historia

A finales de 2009, Wikitude (formalmente Mobilizy), los creadores del Wikitude World Browser, empezaron una temprana iniciativa creando un formato al cual todos los Navegadores AR en ese tiempo pudieran adherirse, llamado Lenguaje de Etiquetado de Realidad Aumentada (ARML). Este formato es ahora llamado ARML 1.0 y sirve como un formato de entrada para el Wikitude World Browser.
A finales de 2011, Martin Lechner, el CTO de Wikitude y el principal conductor de la iniciativa de ARML, estableció el Grupo de Trabajo de Estándares del Lenguaje de Etiquetado de Realidad Aumentada 2.0 (ARML 2.0 SWG) dentro del OGC. Su objetivo consistía en crear un estándar aceptado internacionalmente para la Realidad Aumentada, basado en las ideas de ARML 1.0 y formatos similares. Durante ISMAR (Simposio Internacional sobre Mezclado y Realidad Aumentada) en Atlanta en noviembre de 2012, la primera especificación de ARML 2.0 fue oficialmente publicada, haciendo ARML 2.0 un Candidato Estándar oficial de OGC.

## Estándares relacionados

ARML 2.0 está reutilizando ideas, estructura, sintaxis y semánticas de los siguientes estándares existentes y ampliamente usados:
* HyperText Markup Language, ECMAScript (JavaScript) y Cascading Style Sheets
* Geography Markup Language
* Keyhole Markup Language
* COLLADA
* XPath 2.0
Además, las siguientes iniciativas ARML-independientes también manejan la creación de estándares para los ambientes de Realidad Aumentada:
* El Formato de Aplicación de Realidad Aumentada (Augmented Reality Application Format) (ARAF) desarrollado dentro de Organización Internacional de Normalización(ISO)/MPEG
* KARML desarrollado por el Instituto de Tecnología de Georgia (Georgia Institute of Technology)
* MobAR desarrollado dentro de la Open Mobile Alliance (OMA)

## Ejemplos

El siguiente ejemplo describe un Modelo 3D (asumiendo que uno está disponible en http://www.myserver.com/myModel.dae (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).) puesto en un Rastreable, como un marcador confiable, localizado en http://www.myserver.com/myMarker.jpg (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).: