Introducción a ARKit


Apple lanzó el pasado 5 de Junio durante la WWDC 2017 muchas novedades de su ecosistema de sistemas operativos. Entre ellas anunció su deseo por adentrarse en el mundo de la realidad aumentada con su nuevo kit de desarrollo ARKit.

¿Qué es ARKit?
Desde Cupertino han facilitado la vida de los desarrolladores al incluir esta librería en su nube de herramientas. ARKit es una tecnología de realidad aumentada que utiliza los datos recogidos por las cámaras y sensores de los dispositivos para medir el entorno en el que encuentran y mostrar objetos sobre él.

Craig Federighi fue el encargado de presentar el kit durante la keynote. Para ello usó una demo en la que mostró todas las características, incluyendo mejoras que estarán disponibles para juegos como Pokémon Go. La empresa también ha comentado que gracias a la integración de ARKit con iOS, los usuarios no necesitarán ningún equipamiento especial para aprovecharse de las ventajas de la realidad aumentada.

Aunque eso sí, no todos los dispositivos van a ponedera ejecutar aplicaciones con el Kit. Como se puede comprobar en la documentación proporcionada por Apple, para que un dispositivo pueda utilizarlo necesita como mínimo un procesador A9 y una cámara iSight de 8MP. Esta es la lista completa de dispositivos que van a poder gestionar la librería:

  • iPhone 6s y 6s Plus.
  • iPhone SE.
  • iPhone 7 y 7 Plus.
  • iPad Pro de 12,9 pulgadas de 2015.
  • iPad Pro de 9,7 pulgadas de 2016.
  • iPad de 2017.
  • iPad Pro de 10,5 y 12,9 pulgadas de 2017.

 

En el siguiente video se puede ver el potencial de la nueva herramienta de Apple. Se trata de una simulación del aterrizaje el cohete Falcon 9

¿Cómo funciona ARKit?
El requisito básico para cualquier experiencia AR es la habilidad de crear y mantener una correspondencia entre el mundo real que el usuario percibe y el mundo virtual donde puedes mostrar contenido visual.

Para crear esa correspondencia, ARKit usa una técnica llamada Odometría Visual Inercial (VIO). Este proceso combina información de los sensores de movimiento con la cámara de los dispositivos iOS. ARKit reconoce las características más notables de las imágenes, realiza comparaciones para detectar diferencias en las posiciones a través de todas las imágenes del video y lo mezcla con la información de los sensores. El resultado final es un modelo de alta precisión de la posición del dispositivo y su movimiento.

Hola mundo!
Xcode, el IDE de desarrollo de proyectos iOS/MacOS/TvOS, viene con muchas plantillas preconfiguradas, entre ellas un proyecto hola mundo que usa el framework ARKit. Para crear nuestro proyecto debemos seleccionar la plantilla “Augmented Reality App”.

Esto nos creará un proyecto nuevo que superpone un avión a reacción sobre la cámara de nuestro dispositivo iOS. Para customizar nuestro proyecto, podemos descargar un modelo de internet e importarlo en el proyecto. En TurboSquid puedes encontrar muchos modelos, entre ellos bastantes gratuitos.

Una vez hemos encontrado nuestro modelo 3D favorito, nos lo descargamos en formato .dae y lo importamos en nuestro proyecto.

Ahora que nuestro modelo está en el proyecto, puedes abrir el archivo ViewController.swift creado por la plantilla y cambiar el avión a reacción por tu modelo. Tan sólo tienes que encontrar esta línea de código:

let scene = SCNScene(named: "art.scnassets/ship.scn")!
Y sustituirla por tu modelo, por ejemplo:
let scene = SCNScene(named: "art.scnassets/Lowpoly_tree_sample.dae")!

Con este simple ejemplo hemos creado una escena con un árbol virtual. El simulador de iOS no permite usar ARKit pero nos puede servir para previsualizar el modelo:

 

Adaptación de ARKit

Los desarrolladores van a necesitar tiempo para forzar los límites de ARKit y los consumidores van a necesitar tiempo para decidir qué es bueno y qué no. Las aplicaciones más populares de ARKit serán las típicas que te hacen reír, como las de intercambiar caras con los amigos.

Esto significa que durante un tiempo las aplicaciones con ARKit van a ser muy similares a las de los sistemas que existen actualmente, pero eso no significa que sea algo malo, ARKit es una plataforma completa, lo que significa que hay mucho más potencial de innovación que en los otros sistemas.
A medida que pase el tiempo, los desarrolladores se esforzarán más por impresionar al público, exprimiendo ARKit para conseguirlo de modo que algún día veremos de lo que es capaz esta plataforma.

Quien sabe, a lo mejor en un futuro no muy lejano usaremos un iPhone para medir cosas, pasear por nuestra casa virtual antes de ser construida o explorar mundos virtuales.