Guías

Lo que hace el teléfono entre el escaneo y la revelación.

Un código QR abre una página web normal. Esa página pide acceso a la cámara y, a partir de ahí, ejecuta un ciclo unas treinta veces por segundo: encontrar puntos distintivos en el fotograma, compararlos con una huella de la obra, calcular dónde está la impresión en el espacio y dibujar las capas con esa misma transformación. Ningún servidor ve un solo fotograma.

El ciclo

Cuatro pasos, treinta veces por segundo.

  1. 1

    Encontrar puntos que valga la pena rastrear

    Esquinas y texturas de alto contraste — lugares donde la imagen cambia en dos direcciones a la vez, porque son los únicos puntos que se pueden volver a encontrar de forma confiable cuando el teléfono se mueve. Las áreas planas y los bordes rectos no sirven para esto.

  2. 2

    Compararlos con la obra

    La obra se analizó una sola vez, al subirla, y se redujo a una huella de esos puntos. Comparar el fotograma en vivo con esa huella indica qué punto de los que están a la vista corresponde a qué punto de la impresión.

  3. 3

    Calcular dónde está la impresión

    Con suficientes pares coincidentes, un solo cálculo — una homografía — recupera la posición y la inclinación del rectángulo plano en la imagen de la cámara. Las coincidencias erróneas se descartan por consenso en lugar de darse por buenas.

  4. 4

    Dibujar las capas con esa transformación

    La misma transformación coloca tu video y tu texto, de modo que quedan sobre la impresión en lugar de flotar sobre la pantalla. Luego llega el siguiente fotograma y todo vuelve a empezar.

La versión conceptual, sin navegador de por medio: cómo funciona el rastreo de imágenes.

Lo que lo hace posible

Tres API del navegador, sin plugins.

getUserMedia — la cámara

El aviso de permiso estándar, el mismo que usa una videollamada. La transmisión es un elemento de video normal del que la página puede leer píxeles. El permiso es por sitio y el espectador puede revocarlo, lo cual es más de lo que suele ofrecer una app instalada.

WebAssembly — el trabajo de visión

La detección y la comparación de puntos característicos son bucles numéricos intensivos, justo lo que peor hace JavaScript. Compilar esa mitad a WebAssembly es lo que hace posible un presupuesto de unos 30 ms por fotograma en un teléfono de gama media.

WebGL — la composición

Las capas se dibujan en la GPU con la pose que calculó el rastreador, en el mismo fotograma para el que se calculó. Componer un fotograma con una pose calculada a partir de un fotograma anterior es lo que hace que las capas superpuestas se deslicen.

Las limitaciones, sin rodeos

Lo que esto significa para la obra a la que apuntas.

Son propiedades del método, no de una plataforma en particular — se aplican a todas las herramientas de AR con rastreo de imágenes.

Lo que se rastrea es el detalle

Una ilustración cargada de detalle se rastrea de maravilla. Una impresión minimalista con grandes áreas planas casi no le deja al rastreador nada a qué aferrarse, y un patrón repetitivo es peor que nada, porque cada punto se parece a todos los demás.

No se sube nada

Los fotogramas de la cámara se procesan en el dispositivo y se descartan. Lo que viaja es el diseño — la huella de la obra y tus capas —, que se descarga una sola vez. Esto se debe a que el trabajo se hace en el dispositivo, no a una política que pudiera cambiar sin avisar.

Sin profundidad ni anclas en el espacio

Al navegador no se le da acceso al sensor de profundidad ni a las anclas espaciales persistentes que puede usar una app nativa. Para capas fijadas a un rectángulo impreso eso no cuesta nada — el rectángulo ES el ancla, y es mejor ancla que una suposición sobre dónde está el piso.

Apunta tu teléfono a algo y compruébalo.

Empieza con tu propia imagen en el editor del navegador — la primera revelación toma minutos.

Preguntas frecuentes

Preguntas, respondidas.

¿WebAR sube la imagen de mi cámara?

No. Los fotogramas se procesan en el teléfono y se descartan; no se envía nada a ningún lado. Eso se deriva de dónde ocurre el trabajo, no de una promesa — el rastreo se ejecuta en la página, en el dispositivo, porque un viaje de ida y vuelta por fotograma nunca podría cumplir un presupuesto de 30 ms.

¿Por qué mi obra se rastrea mal?

Casi siempre por falta de detalle irregular o por exceso de repetición. El rastreo necesita puntos que se distingan entre sí; las grandes áreas planas no aportan ninguno, y un patrón repetido aporta muchos que no se pueden distinguir. Las obras cargadas de detalle, con textura y asimétricas son las que mejor se rastrean.

¿Necesito una app o un plugin?

No. Es una página web que usa getUserMedia para la cámara, WebAssembly para el trabajo de visión y WebGL para dibujar — todo estándar en Safari en iOS y Chrome en Android. El espectador escanea un código y funciona.

¿La AR en el navegador puede colocar un modelo en mi piso?

No de forma confiable, y esa es otra tecnología. Colocar objetos en una sala requiere detección de profundidad y anclas persistentes en el espacio, a las que los navegadores no tienen acceso. El rastreo de imágenes, en cambio, se ancla a una pieza impresa, que es un rectángulo plano conocido y, por lo tanto, un punto de sujeción mucho más preciso.