A-Frame це вебфреймворк з відкритим вихідним кодом для створення віртуальної реальності (ВР).[2] В першу чергу він підтримується Mozilla та спільнотою WebVR. Це фреймворк на основі системи компонентів сутності (entity component system) для Three.js де розробники можуть створювати 3D і WebVR сцени, використовуючи HTML. HTML забезпечує звичні засоби роботи для веброзробників і дизайнерів, включно із популярними патернами розробки ігор, які використовуються наприклад в Unity.
A-Frame був розроблений в команді Mozilla VR у другій половині 2015 року.[3] Команда Mozilla VR стала піонером платформи WebVR та специфікацій для неї, але був потрібен простіший спосіб створення контенту. У роботі над розробкою A-Frame брали участь Дієго Маркос, Джош Карпентер, Кейсі Йі, Кріс Ван Вієрерш та Кевін Ного. A-Frame був створений для того, щоб дозволити веброзробникам та дизайнерам створювати 3D та VR-контенрт з HTML без необхідності знати WebGL.[4] Перший публічний реліз A-Frame відбувся 16 грудня 2015 року.[5] В даний час у розвитку проекту беруть участь понад 75 учасників.[6]
Переваги
3D і VR контент створюється з використанням HTML.[7]
Налаштування сцени в одному рядку HTML-коду (<a-scene>) для обробки рендерингу, циклу візуалізації, світла, керування, налаштування WebVR.[7]
Оскільки A-Frame базується на системі компонентів сутності, під капотом кожен об'єкт сцени — це сутність. Сутності є загальними об'єктами-заповнювачами. Компоненти — складні та багаторазові модулі, які можна підключити до сутностей для додавання зовнішнього вигляду, поведінки та функціональності. Компоненти написані на JavaScript, і їх можна зробити для будь-чого, а потім виставити декларативний API через HTML. Ось приклад включення пари компонентів від спільноти для систем часток та фізики за допомогою зовнішніх скриптів, які потім використовується в HTML.
Всі IDE, що працюють онлайн, підтримують A-Frame, оскільки він базується на HTML. Для API доступна документація.[19] Підтримка розробників, які беруть участь у бібліотеці, надається через GitHub, тоді як підтримка розробників, які створюють додатки та вебсторінки, надається через StackOverflow.[20] Підтримка в реальному часі здійснюється через Slack.[21] Більшість розробників також є у Твіттері.