Cruise abre el código fuente de Worldview

En Cruise Automation, cientos de ingenieros y evaluadores trabajan con los datos recopilados en la carretera y a través del simulador. Además, un comando interno especial AV Tools crea aplicaciones para visualizar, buscar y analizar estos datos. Después de todo, los usuarios y los desarrolladores deben comprender lo que "ve" el automóvil y lo que va a hacer, incluida una nube de puntos del LIDAR, cientos de objetos clasificados y rastreados, mapas detallados y otros datos para su visualización.

Al igual que muchos otros equipos dentro de Cruise , el equipo de AV Tools crea herramientas de visualización en el navegador, y aquí React es el estándar dentro de la compañía. Para reducir la complejidad de las aplicaciones de la compañía y facilitar el proceso de creación de sistemas de visualización complejos, el equipo creó una biblioteca de reacción que simplifica la representación de escenas 2D y 3D, llamada Worldview (Uber lanzó anteriormente una herramienta similar llamada AVS ).

imagen

Webgl es cruel


La programación de GPU ofrece grandes oportunidades, pero puede ser tedioso de aprender. Un navegador moderno proporciona una API potente para compilar y vincular sombreadores, cargar búferes de vértices y texturas, así como objetos, pero todo esto es muy difícil de dominar, desarrollar y depurar. A lo largo del trabajo, el equipo de AV Tools experimentó con diferentes frameworks además de WebGL.

imagen Se decidió detenerse en regl , una biblioteca que oculta la complejidad de trabajar con WebGL detrás de una API simple y liviana que convierte los accesorios en primitivas de bajo nivel y simplifica el renderizado, casi como si React usa accesorios y estados para abstraer del DOM.

regl proporciona una interfaz muy similar a React, pero al mismo tiempo proporciona acceso completo a las funciones de WebGL, como texturas, framebuffers e instanciación. Esta herramienta nos permitió centrarnos en el desarrollo de la funcionalidad, en lugar de excavar dentro de WebGL.

Cruise ama reaccionar


Muchos equipos front-end de desarrollo de Cruise que comenzaron a usar el renderizado regl en sus proyectos rápidamente se dieron cuenta de que algunos patrones de reacción eran difíciles de soportar en la API regl. A pesar del paradigma de accesorios similares, algunos aspectos de GL requieren la creación de visualización personalizada y su integración efectiva en nuestro sistema de renderizado.

imagen

Para simplificar aún más el proceso de desarrollo, los desarrolladores extrajeron del código de plantilla que proporcionaba el dibujo de formas estándar y tipos de datos en regl creando una biblioteca de componentes de reacción. Esto permitió a otros equipos no reinventar sus bicicletas, sino usar ladrillos prefabricados.

La biblioteca se llama Worldview . Proporciona cámaras 2D y 3D, controles de mouse y teclado, y herramientas para dibujar objetos y escenas. Gracias a esto, los ingenieros de Cruise pueden crear fácilmente sus propios sistemas de visualización, sin la necesidad de sumergirse en el estudio de API WebGL de bajo nivel y escribir sus propios contenedores para ellos.

Fuente de apertura de Worldview


Inicialmente, Worldview se combinó estrechamente con el sistema de visualización patentado de Cruise. Sin embargo, a medida que el sistema creció, se decidió separarlo en una biblioteca separada bajo la licencia Apache 2.0. Cruise espera que Worldview reduzca el umbral de entrada de WebGL para muchos al proporcionar a los desarrolladores web herramientas simples para representar escenas complejas.

imagen

Que sigue


Cruise continuará desarrollando y actualizando el código para Worldview y otras bibliotecas de visualización. Los desarrolladores están contentos con cualquier ayuda del exterior: las solicitudes de extracción son bienvenidas.

Source: https://habr.com/ru/post/441398/


All Articles