explaingit

aframevr/aframe

17,530JavaScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

A-Frame is a web framework that lets you build browser-based 3D, VR, and AR experiences using HTML-like tags, no game engine required, works on desktop, smartphones, and VR headsets.

Mindmap

mindmap
  root((A-Frame))
    What it does
      3D scenes in HTML
      VR and AR support
      Runs in browser
    Tech
      JavaScript
      three.js
      WebXR
    Components
      Geometries
      Materials
      Lights
      Controllers
    Use Cases
      VR experiences
      AR overlays
      3D product demos
    Audience
      Web developers
      Designers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build and publish a VR walkthrough of a product or space that anyone can open in a browser without installing an app.

USE CASE 2

Create an interactive 3D scene or data visualization that works on both desktop and smartphones using plain HTML tags.

USE CASE 3

Prototype an AR or VR web experience using custom HTML elements instead of writing a full game engine integration.

Tech stack

JavaScriptthree.jsWebXRnpm

Getting it running

Difficulty · easy Time to first run · 5min

Requires a WebXR-capable browser, full VR experience needs a connected headset, but desktop and smartphone preview work without one.

In plain English

A-Frame is a web framework for building browser-based 3D, augmented reality (AR), and virtual reality (VR) experiences. The idea behind it is that you should not need to learn a heavy game engine just to put a 3D scene on the web, you should be able to write something close to plain HTML and have it work, including on a VR headset. A-Frame does this by adding a set of custom HTML tags. You wrap your scene in an <a-scene> element, then drop in shapes like <a-box>, <a-sphere>, or <a-cylinder> with attributes for position, rotation, and color. Open the page in any WebXR-capable browser and the scene renders in 3D, on a connected headset it appears as a real VR experience. Underneath, A-Frame is a thin layer on top of three.js (a popular JavaScript 3D library) and the browser's WebXR support, and it uses an entity-component architecture, a game-engine pattern where you compose objects out of reusable behaviors. You can stay in HTML or drop down to JavaScript and three.js for more control. A built-in visual inspector lets you poke around your scene the way browser dev tools let you inspect a web page. Built-in components cover geometries, materials, lights, animations, models, raycasters, shadows, positional audio, and tracked controllers, community components add particle systems, physics, multiuser, oceans, speech recognition, and teleportation. You would use A-Frame if you wanted to publish a VR or AR experience on the web without building everything from scratch. It runs on desktop and smartphones too, so users without a headset can still open the page. The framework is written in JavaScript and distributed on npm. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
Using A-Frame, write me an HTML file that creates a VR scene with a rotating box, a sphere, and a textured ground plane viewable in any browser.
Prompt 2
I want to build a virtual room tour with A-Frame where users can click hotspots to teleport between locations. Show me the HTML and which community components I need.
Prompt 3
How do I add a GLTF 3D model to an A-Frame scene and animate it spinning? Write the complete code.
Prompt 4
Build an A-Frame scene with positional audio that plays a sound when the user looks at a specific object for two seconds.
Open on GitHub → Explain another repo

← aframevr on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.