Esta es una traducción del artículo original publicado en el blog de Mozilla Hacks. Traducción por Rober Villar.
A-Frame es un framework que hace mas fácil construir contenido de realidad virtual (VR) para la web. Este proporciona:
- La capacidad de construir escenas 3D con HTML declarativo.
- Escenas adaptables WebVR que funcionan sin cambios en múltiples plataformas.
- Un patrón entidad-componente-sistema que proporciona componibilidad y extensibilidad.
Después de tres divertidos meses ocupados con el desarrollo, estamos orgullosos de anunciar el lanzamiento de A-Frame version 0.2.0. El tema global de esta versión es la extensibilidad. Para que WebVR evolucione rápidamente, en un período en el que la realidad virtual (VR) está dominada por ecosistemas nativos cerrados, A-Frame necesita permitir experimentación abierta e iteración rápida. La extensibilidad inherente de A-frame permite a los desarrolladores la innovación sin permisos, haciendo de éste el sabor VR del Manifiesto Extensible Web.
*Si no estás familiarizado, lee Construye la web de realidad virtual con A-Frame.
Desde el lanzamiento
A-Frame ha recibido una respuesta muy positiva por la democratización en creación de contenido inmersivo 3D en la web. Los números:
- Más de 1500 estrellas, 25 colaboradores, 550 commits en el repositorio A-Frame en GitHub .
- Más de 470 personas se han unido al canal de Slack de la comunidad A-Frame para hacer preguntas, mostrar proyectos acabados, y simplemente para socializar.
- Más de 100 impresionantes creaciones de gente inscrita en el repositorio awesome-aframe .
- Más de 50 proyectos exhibidos en el Tumblr Made With A-Frame (Hecho con A-Frame).
Miembros de la comunidad que han utilizado A-Frame para algunos usos interesantes:
- Donovan Kraeker de DrawVR ha construido varias tiendas VR para realzar sus propiedades e-commerce existentes .
- Ryan James, un estudiante PhD e investigador de la universidad de Washington, ha aplicado la realidad virtual a la educación médica.
- Don McCurdy, un ingeniero de software en Google, ha recreado una escena procedente del popular juego indie, Monument Valley.
A-Frame también ha recibido algún uso de un nivel más alto:
- Amnistía Internacional UK, en colaboración con la empresa de diseño Junior, creó 360 Siria, una experiencia que transporta a los espectadores a la sitiada ciudad de Aleppo, Siria, para presenciar la devastación de los bombardeos sobre sus ciudadanos.
- The Washington Post publicó Marte: Un viaje interactivo En el que se transporta a gente a la superficie del planeta rojo para aprender programas de exploración espacial.
Extensibilidad mejorada en A-Frame 0.2.0
A-Frame trajo el patrón entidad-componente-sistema a HTML. Todo en una escena es una entidad. Una entidad es un contenedor general de objetos que inherentemente no hace ni reproduce nada. Los componentes son contenedores reutilizables más pequeños de datos y lógica; cuando se conectan a las entidades, los componentes les proporcionan apariencia, comportamiento, y funcionalidad. Los desarrolladores pueden escribir componentes para hacer lo que ellos quieren, con acceso directo a three.js, y después compartirlos con la comunidad. Cualquier cosa que sea posible con three.js y WebGL es posible con A-Frame.
Desde el lanzamiento inicial de A-frame, hemos estado refinando en gran medida la API de componentes. Lo realizamos a través de ciclos de creación de componentes, descubriendo limitaciones en la API, y después escribiendo patches para mejorar A-Frame. Mediante pruebas internas en nuestro propio framework, fuimos capaces de descubrir obstáculos en la extensión de A-Frame:
- La API de componentes ha sido mejorado con tipos de propiedad, configuración de esquema, y más métodos del ciclo de vida (
pause
,play
,tick
). - Primitivas (elementos de conveniencia como son
<a-sphere>
) son capaces de tomar componentes.
Además, hemos abierto más vías de escape a los desarrolladores para profundizar. Ahora pueden:
- Definir tipos de propiedades personalizadas para componentes APIs más flexibles.
- Registrar lenguaje de sombreado (GLSL shaders) o materiales three.js .
- Registrar primitivas.
- Registrar sistemas que proporcionen ámbito global y servicios a los componentes.
Lee las notas del lanzamiento de la versión completa 0.2.0 para más detalles.
Encarnación de la web extensible VR
La Web Extensible fomenta la competición saludable entre ideas y APIs. Solamente cuando emergen las ideas y las APIs están estabilizadas deberían ser estandarizadas. Es obligatorio seguir esta teoría para que la WebVR tenga éxito, de otra manera sería como si la Web llegara tarde a la fiesta cuando todas la patatas fritas ya se han comido. A-Frame es una encarnación de esas ideas.
Como se ha mencionado antes, con A-Frame se construye sobre un patrón entidad-componente-sistema, los desarrolladores pueden escribir, compartir, y conectar componentes que añaden nuevas características. Si una característica todavía no existe o no está a la altura, la comunidad puede mejorarla. El ecosistema ya cuenta con componentes integrados construidos por la comunidad que habilitan los controles gamepad, reconocimiento de voz, y física. Con este sistema de innovación a corto plazo, los desarrolladores pueden experimentar rápidamente con ideas con objeto de ayudar en el avance no únicamente de A-Frame sino también de WebVR.
Por ejemplo, Don McCurdy tieró sobre los componentes standard A-Frame en su repositorio de pruebas de A-Frame, mientras que el equipo principal A-Frame ha trabajado sobre la activación de la extensibilidad. A partir de eso, ha rediseñado y mejorado todo el sistema físico de control en A-Frame. Con esos componentes probados, vamos mejorando la colección de componentes estándar en A-Frame.
Mucha gente en la comunidad estuvo buscando una manera de interpretar elementos de texto y HTML como texturas en A-Frame. El estudiante Max Krieger tomó la iniciativa y escribió componentes para permitir el uso del elemento <canvas>
como una textura que permite ajustes de texto.
También, Ben Nolan de SceneVR recientemente ha portado su código del cliente para utilizar A-Frame. Ha desarrollado componentes que permiten experiencias interactivas y multi-usuario, características que el equipo principal de A-Frame tenía como objetivo para finales de este año. Además, Ben está trabajando en un editor WYSIWYG para escenas A-Frame. Nosotros también estamos trabajando en un editor.
Este virtuoso ciclo de la comunidad habilitando características y compartiendo componentes continua siendo un beneficio enorme para el ecosistema WebVR . En lugar de diseñar lentamente a puerta cerrada, construimos A-Frame para que toda la comunidad web ayudara en el esfuerzo. Juntos probaremos muchas cosas y lentamente nos centraremos en las que funcionan.
Mirando hacia el futuro
Trabajaremos en la construcción de más demostraciones, mejorando interactividad, y mejorando el rendimiento. Una vez que el adaptador polyfill esté estabilizado, daremos a conocer rápidamente el soporte WebVR 1.0 en A-Frame.
Latest posts by jorgev (see all)
- Simplificando los Canales de Distribución de Firefox - 29/08/2017
- Reporte de Hardware de Firefox para desarrolladores web - 08/07/2017
- Mejorando los temas en Firefox - 04/07/2017
Start the discussion at foro.mozilla-hispano.org