aframe-extras

A-Frame Extras

Latest NPM release GitHub license

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

Usage (Scripts)

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/aframe-extras@7.5.2/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.

Usage (NPM)

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.

Examples

A live set of usage examples can be found here:

https://c-frame.github.io/aframe-extras/examples/

Deprecated Components

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.