Add-ons and helpers for A-Frame VR.
Includes components for controls, model loaders, pathfinding, and more:
src ├── controls/ (Documentation) │ ├── movement-controls.js │ ├── checkpoint-controls.js │ ├── gamepad-controls.js │ ├── keyboard-controls.js │ ├── touch-controls.js │ └── trackpad-controls.js ├── loaders/ (Documentation) │ ├── animation-mixer.js │ ├── collada-model-legacy.js │ ├── fbx-model.js │ ├── gltf-model-legacy.js │ └── object-model.js ├── misc/ (Documentation) │ ├── checkpoint.js │ ├── cube-env-map.js │ ├── grab.js │ ├── mesh-smooth.js │ ├── normal-material.js │ └── sphere-collider.js ├── pathfinding/ (Documentation) │ ├── nav-mesh.js │ └── nav-agent.js └── primitives/ (Documentation) ├── a-grid.js ├── a-ocean.js └── a-tube.js
In the dist/ folder, download any package(s) you need. Include the scripts on your page, and all components are automatically registered for you:
<script src="https://cdn.jsdelivr.net/gh/c-frame/[email protected]/dist/aframe-extras.min.js"></script>
replace 7.5.2
by another tag or a commit hash (for example 3e0ab50
) if you want to use a build from master branch.
You can look at the commits and use the latest commit hash.
For partial builds, use a subpackage like aframe-extras.controls.min.js
. Full list of packages above.
A-Frame Version Compatibility
A-Frame | Extras |
---|---|
v1.4.0 | v7.0.0 |
v1.3.0 | v7.0.0 |
v1.2.0 | v7.0.0 |
v1.1.0 | v6.1.1 |
NOTE: Several components and examples also rely on aframe-physics-system.
npm install --save aframe-extras
// index.js
import 'aframe-extras';
// or specific packages
import "aframe-extras/controls/index.js";
import "aframe-extras/pathfinding/index.js";
Once installed, you'll need to compile your JavaScript using something like webpack with three defined as external, see webpack.config.js in this repo for an example.
A live set of usage examples can be found here:
https://c-frame.github.io/aframe-extras/examples/
The following components existed in previous versions of A-Frame Extras, but have been removed as of the latest release
Component | Removed in | Reasons |
---|---|---|
kinematic-body |
7.0.0 | Using physics for movement is unstable and performs poorly. When preventing players from passing through obstacles, use a navigation mesh instead whenever possible. The kinematic-body component constrainted player movement using physics, and depended on aframe-physics-system. Using physics for locomotion is not VR-friendly, and often glitchy even for traditional 3D experiences. Use a navigation mesh instead, whenever possible. |
jump-ability |
7.0.0 | Dependent on kinematic-body |
a-hexgrid |
7.0.0 | Was based on this repo, which is no longer maintained, and does not work with recent versions of THREE.js. |
mesh-smooth |
7.0.0 | Intended for JSON models, but the JSON Loader is no longer part of this repo. More background here. |