aframe-webxr

Build browser-based VR, AR, and 3D scenes using A-Frame's declarative HTML entity-component architecture.

Updated Aug 12, 2026
One-click install
npx skills add https://github.com/sixscripts-ai/agent-arena-voice --skill aframe-webxr-sixscripts-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: aframe-webxr
Source: https://github.com/sixscripts-ai/agent-arena-voice/tree/main/.claude/plugins/claudedesignskills/plugins/bundles/extended-3d-scroll/skills/aframe-webxr
Command: npx skills add https://github.com/sixscripts-ai/agent-arena-voice --skill aframe-webxr-sixscripts-ai

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Building WebXR experiences normally requires deep Three.js and WebGL expertise; this Skill lets you create VR, AR, and 3D web content declaratively with HTML primitives and minimal JavaScript. ## Core Features & Use Cases - Declarative 3D Scenes: Compose scenes with primitives like a-box, a-sphere, and a-sky, plus components for lighting, materials, animation, and sound. - VR/AR Interactions: Implement hand-controls, laser-controls, gaze cursors, and AR hit-testing for placing objects on real-world surfaces. - Component Generation: Use the bundled component_builder.py script to scaffold custom components (interactive, animation, physics, controller, networked, loader). - Use Case: Create a 360-degree image gallery with clickable thumbnails, gaze-based cursor interaction, and sound feedback that runs on desktop, mobile, and VR headsets from a single HTML file. ## Quick Start Create an A-Frame scene with a rotating box, a sphere, ambient lighting, and a camera with cursor interaction.

Frequently Asked Questions about aframe-webxr

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a VR scene with A-Frame?

Create an HTML file that loads the A-Frame script from the CDN, then add an a-scene element containing primitives like a-box, a-sphere, and a-sky. A-Frame automatically injects a default camera with look-controls and WASD movement, so the scene works immediately in the browser.

How do I add VR controller interactions in A-Frame?

Attach hand-controls and laser-controls components to entities inside a camera rig, one per hand. Listen for events like triggerdown, triggerup, gripdown, and gripup on interactive entities to implement grabbing and manipulation.

Does A-Frame support AR hit testing on mobile?

Yes, A-Frame supports AR hit testing through the ar-hit-test component combined with the webxr scene configuration enabling hit-test and dom-overlay features. It fires ar-hit-test-start, ar-hit-test-achieved, and ar-hit-test-select events for placing objects on detected real-world surfaces.

A-Frame vs Three.js for WebXR development?

A-Frame is built on Three.js and provides a declarative HTML-first API suited for rapid prototyping and content-focused scenes, while raw Three.js offers lower-level programmatic control. You can access the underlying Three.js objects via entity.object3D whenever you need direct manipulation.

Why are my A-Frame click events not firing?

Click and mouseenter events require a cursor or raycaster component to detect intersections. Add an a-cursor element inside the camera with raycaster set to target your interactive class, and ensure the target entities have that class applied.

How do I improve A-Frame performance on mobile VR?

Reduce geometry segment counts, limit the number of lights, cap the renderer canvas size with maxCanvasWidth and maxCanvasHeight, and preload assets through a-assets. You can also pool and reuse entities instead of creating and destroying them, and throttle expensive tick() updates.