A-Frame (virtual reality framework)

A-Frame
Developer(s) Diego Marcos, Don McCurdy, Kevin Ngo
Initial release December 2015
Stable release
1.5.0 / November 14, 2023
Repository
Written in JavaScript
Platform Cross-platform
Type JavaScript framework
License MIT License
Website aframe.io

A-Frame is an open-source web framework for building virtual reality (VR) experiences. It is maintained by developers from Supermedium (Diego Marcos, Kevin Ngo) and Google (Don McCurdy). A-Frame is an entity component system framework for Three.js where developers can create 3D and WebXR scenes using HTML. HTML provides a familiar authoring tool for web developers and designers while incorporating a popular game development pattern used by engines such as Unity.

History

A-Frame was originally developed within the Mozilla VR team during mid-to-late 2015. A-Frame was created in order to allow web developers and designers to author 3D and VR experiences with HTML without having to know WebGL. A-Frame's first public release was on December 16, 2015. On December 16, 2019 A-Frame version 1.0.0 was released.

Community

All online IDEs support A-Frame as a result of being based on HTML. Documentation is available for the API. Support for developers committing to the library is provided via GitHub issues, while support for developers building apps and web pages is provided via StackOverflow. Real-time on-line support is provided via Slack. Most of the developers are also on Twitter.

Usage

Mozilla Hubs Chat room software uses A-Frame.

Example

<html>
  <head>
    <script src="https://aframe.io/releases/1.3.0/aframe.min.js"></script>
  </head>
  <body>
    <a-scene>
      <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box>
      <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere>
      <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
      <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>
      <a-sky color="#ECECEC"></a-sky>
    </a-scene>
  </body>
</html>


See also