# A-Frame

A-Frame es un framework web de código abierto para crear experiencias de realidad virtual (VR). Es mantenido por desarrolladores de Supermedium (Diego Marcos, Kevin Ngo), Google (Don McCurdy) y la comunidad WebVR. Es una estructura de sistema de componente de entidad para Three.js donde los desarrolladores pueden crear escenas 3D y WebVR usando HTML. HTML proporciona una herramienta de autoría familiar para desarrolladores y diseñadores web al tiempo que incorpora un popular patrón de desarrollo de juegos utilizado por motores como Unity (Entidad Componente Sistema).

## Historia

A-Frame se desarrolló dentro del equipo de Mozilla VR durante finales de 2015. El equipo de VR de Mozilla fue pionero en la plataforma y la especificación WebVR, pero necesitó una forma más fácil de crear contenido. La obra original detrás de A-Frame involucró a Diego Marcos, Josh Carpenter, Casey Yee, Chris Van Wiemeersch y Kevin Ngo. A-Frame fue creado con el fin de permitir a los desarrolladores web y diseñadores de 3D y VR experiencias con HTML sin tener que conocer WebGL. El primer lanzamiento público de A-Frame fue el 16 de diciembre de 2015. Ahora hay más de 75 contribuyentes en total.

## Beneficios

* Creación de contenido 3D y VR con HTML sin pasos de construcción.
* Configuración de la escena con una línea de HTML (<a-scene>) para manejar el renderizador de lienzo, render loop, luces, controles, configuración de WebVR.
* Compatibilidad con la mayoría de las bibliotecas y marcos web existentes (React (biblioteca de JavaScript), AngularJS, D3.js, Vue.js).
* Arquitectura del sistema de componente de entidad que favorece la composición sobre la herencia para definir objetos 3D complejos utilizando componentes reutilizables.
* El ecosistema extensible de complementos de entidades y componentes.
* Herramienta de inspector visual que se puede invocar en el navegador desde cualquier escena en vivo de A-Frame.

## Uso

Toda una escena A-Frame puede estar contenida dentro de un archivo HTML incluyendo un solo archivo JavaScript.
Dado que A-Frame se basa en un patrón de sistema de componentes de Entity, bajo el capó, cada objeto en una escena es una entidad. Las entidades son objetos de marcador de posición generales. Los componentes son módulos componibles y reutilizables que se pueden conectar a entidades para agregar apariencia, comportamiento y funcionalidad. Los componentes se escriben en JavaScript y se pueden hacer para hacer cualquier cosa, y luego exponer una API declarativa a través de HTML. Aquí está un ejemplo de incluir un par de componentes de la comunidad para los sistemas de partículas y la física a través de scripts externos y, a continuación, se utiliza desde HTML

## Usos y trabajos seleccionados

A-Frame se utiliza para una variedad de aplicaciones y propósitos. La siguiente lista identifica usos y trabajos seleccionados.
* Temor al Cielo (360 Siria) , 2016, Amnistía Internacional Reino Unido. Sitio web.
* Viaje a Marte , 2016, The Washington Post.
* iStaging LiveTour, 2016, iStaging.
* Pintor, 2016, Mozilla.
* Shopify VR, 2016, Shopify.
* Párese al borde del tiempo geológico, 2016, NPR.
* Guri VR, 2016, The New York Times.

## Comunidad

Todo en línea IDE soporte A-Frame como resultado de estar basado en HTML. La documentación está disponible para la API.
El soporte para desarrolladores que se comprometen con la biblioteca se proporciona a través de los reportes de problemas de GitHub, mientras que el soporte para desarrolladores que crean aplicaciones y páginas web se proporciona a través de StackOverflow.
La asistencia en línea en tiempo real se realiza via Slack.
La mayoría de los desarrolladores están en Twitter.