Sightline Maps, el desarrollo científico en web

EL 04/20/2018

El mundo se mueve hacia la automatización y la integración constante en una sola plataforma, ya no se necesita un programa de escritorio para poder realizar procesos complejos tampoco se necesita tener un servidor de grandes capacidades. Ahora, podemos dar proceso al cliente y evitar sobre cargar o instalar software adicional. Hoy día la tecnología de software se está unificando en una sola plataforma, la web, en ésta podemos realizar casi cualquier procedimiento que antes solo podíamos hacer con un programa en una computadora en el host local (cliente).

Una muestra de lo anterior es el proyecto de Sightline Maps , en el cual implementamos tecnologías adecuadas para que se generen procesos de renderizado de imágenes 3D y mapas sin necesidad de instalar algún plugin o algo adicional. Solo con tu dispositivo y una conexión a internet puedes acceder a esta gran herramienta. La pregunta es ¿qué tecnologías usamos en este proceso? Las tecnologías web: Service WorkersJavaScript (React), WebStomp, entre otras.

Expliquemos un poco qué hace Sightline Maps

Ésta es una plataforma web en la que podemos visualizar, almacenar y compartir nuestros archivos procesados de tecnología LiDAR, sin necesidad de instalar nada, con una gran facilidad y precisión científica.

Pero…¿qué es la tecnología LiDAR?

Detección y localización de imágenes por láser (LiDAR en inglés), “permite determinar la distancia desde un emisor láser a un objeto o superficie utilizando un haz láser pulsado. La distancia al objeto se determina midiendo el tiempo de retraso entre la emisión del pulso y su detección a través de la señal reflejada. En general, la tecnología LiDAR tiene aplicaciones en geología, sismología y física de la atmósfera. También se investiga su uso en vehículos, especialmente los autónomos.”

Con lo anterior podemos decir que estamos desarrollando una gran herramienta que procesa tecnología científica moderna y que además es uno de los futuros promisorios de los vehículos o dispositivos autónomos en una plataforma web, es decir ¡en tu navegador!, no necesitas descargar un programa de estos científicos, que además de pesados, no son portables y cuestan demasiado para procesar los datos, ya lo puedes hacer con acceso a internet.

Entrando a la parte técnica del proyecto Sightline Maps

La renderización de las imágenes que generan los archivos LiDAR se hace con WebGL, la cual consiste en código de control escrito en JavaScript y código de efectos especiales (código shader) que se ejecuta en la unidad de procesamiento gráfico de la computadora (GPU). Esto ayuda a obtener imágenes 3D o procesamiento de éstas sin afectar el proceso de nuestra PC.

Además de la anterior las otras tecnologías web utilizadas son los Service Workers y los WebSockets (WebStomp), la primera tecnología se usa para procesar los datos de los archivos LiDAR sin bloquear el navegador o la página web, ya que envía estos procesos a otros hilos del navegador y permite tener los resultados sin bloqueos, la segunda se utiliza para mantener una conexión constante con el servidor de colas RabbitMQ.

En el caso del lado del back, se tiene una completa y funcional arquitectura con los servicios de AWS usando una gran variedad de estos, como: CloudFront, EC2, S3, Route53, RDS, Cloud Watch, Lambda, API Gateway entre otras. En estos servicios el core del proyecto está escrito en Python y NodeJSElixir por su parte juega un papel con el servidor de colas de RabbitMQ, lo cual es fundamental para no perder ni bloquear la línea de proceso. Como podemos observar, la mayoría de tecnologías usadas son tecnologías web y lenguajes de programación modernos como Python y NodeJS.

En el lado del Front-end, tenemos a uno de los frameworks más robustos, React, éste nos ayuda a crear toda la parte estética de nuestro proyecto dándole fluidez y un alto performance. También utilizamos Service Workers ya que nos ayudan a sacar todo el potencial de nuestro navegador y, como se mencionó en un inicio, usar el hardware de nuestro equipo para evitar ralentizar nuestro navegador.

En conclusión, podemos observar que el desarrollo científico va de la mano con el desarrollo web o que estos dos no son diametralmente opuestos, sino al contrario, la tecnología web está hecha para ser utilizada en cualquier área de desarrollo.

Si la tecnología web está ayudando a la ciencia a ser más asequible imagínate lo que puede hacer por tu proyecto.

Autos: William Penagos, desarrollador Full Stack @Imaginamos.