Introduction
Note: This documentation is for the old 1.4.0 version of A-Frame. Check out the documentation for the current 1.6.0 version
Getting Started
A-Frame can be developed from a plain HTML file without having to install
anything. A great way to try out A-Frame is to remix the starter example on
Glitch, an online code editor that instantly hosts and deploys for
free. Alternatively, create an .html
file and include A-Frame in the
<head>
:
<html> |
The Installation page provides more options for getting started with A-Frame. To get started learning A-Frame, check out A-Frame School for visual step-by-step lessons to complement the documentation.
What is A-Frame?
-Frame is a web framework for building virtual reality (VR) experiences. A-Frame is based on top of HTML, making it simple to get started. But A-Frame is not just a 3D scene graph or a markup language; the core is a powerful entity-component framework that provides a declarative, extensible, and composable structure to three.js.
Originally conceived within Mozilla and now maintained by the co-creators of A-Frame within Supermedium, A-Frame was developed to be an easy yet powerful way to develop VR content. As an independent open source project, A-Frame has grown to be one of the largest VR communities.
A-Frame supports most VR headsets such as Vive, Rift, Windows Mixed Reality, Daydream, GearVR, Cardboard, Oculus Go, and can even be used for augmented reality. Although A-Frame supports the whole spectrum, A-Frame aims to define fully immersive interactive VR experiences that go beyond basic 360° content, making full use of positional tracking and controllers.
Features
VR Made Simple: Just drop in a <script>
tag and <a-scene>
.
A-Frame will handle 3D boilerplate, VR setup, and default controls. Nothing to
install, no build steps.
Declarative HTML: HTML is easy to read, understand, and copy-and-paste. Being based on top of HTML, A-Frame is accessible to everyone: web developers, VR enthusiasts, artists, designers, educators, makers, kids.
Entity-Component Architecture: A-Frame is a powerful three.js framework, providing a declarative, composable, reusable entity-component structure. HTML is just the tip of the iceberg; developers have unlimited access to JavaScript, DOM APIs, three.js, WebVR, and WebGL.
Cross-Platform VR: Build VR applications for Vive, Rift, Windows Mixed Reality, Daydream, GearVR, and Cardboard with support for all respective controllers. Don’t have a headset or controllers? No problem! A-Frame still works on standard desktop and smartphones.
Performance: A-Frame is optimized from the ground up for WebVR. While A-Frame uses the DOM, its elements don’t touch the browser layout engine. 3D object updates are all done in memory with little garbage and overhead. The most interactive and large scale WebVR applications have been done in A-Frame running smoothly at 90fps.
Visual Inspector: A-Frame provides a handy built-in visual 3D
inspector. Open up any A-Frame scene, hit <ctrl> + <alt> + i
or <ctrl> + <option> + i
,
and fly around to peek under the hood!
Components: Hit the ground running with A-Frame’s core components such as geometries, materials, lights, animations, models, raycasters, shadows, positional audio, text, and controls for most major headsets. Get even further from the hundreds of community components including environment, state, particle systems, physics, multiuser, oceans, teleportation, super hands, and augmented reality.
Proven and Scalable: A-Frame has been used by companies such as Google, Disney, Samsung, Toyota, Ford, Chevrolet, Amnesty International, CERN, NPR, Al Jazeera, The Washington Post, NASA. Companies such as Google, Microsoft, Oculus, and Samsung have made contributions to A-Frame.
Off You Go!
If it’s your first time here, here’s a plan for success for getting into A-Frame:
Subscribe to the Newsletter for updates and tips on A-Frame and to see featured community projects.
Read through the documentation to get a grasp. Glitch is used as a recommended coding playground and for examples.
Join us on Discord and Slack and if you have any questions, search and ask on StackOverflow, and someone will try to get to you!
When you build something, share your project online and we’ll try to feature it on the newsletter and the blog!
And it really helps to have a dig into the fundamentals on JavaScript and three.js. Have fun!