Socket
Socket
Sign inDemoInstall

aframe

Package Overview
Dependencies
36
Maintainers
5
Versions
36
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    aframe

A web framework for building virtual reality experiences.


Version published
Weekly downloads
10K
decreased by-9.21%
Maintainers
5
Created
Weekly downloads
 

Changelog

Source

1.5.0 (Nov 14, 2023)

Multiview extension, Spatial computing UIs, Mixed Reality features, Hand manipulation interactions, Quest 3 support and much more!

Bug fixes

  • Use renderer.useLegacyLights instead of the deprecated renderer.physicallyCorrectLights in three r150, but keep the physicallyCorrectLights property name for the renderer system for backward compatibility (fix #5293) (@mrx)
  • Fix hand-controls animations (#5300)
  • Fix outdated link in error message (#5313) (fix #5275) (@kolson25)
  • Fix visibility of controller in model-viewer example (#5317) (@DougReeder)
  • Fix typo in phong shader properties (#5334) (@nightgryphon)
  • Adapt shaders to new THREE API (#5328) (@nightgryphon)
  • Traverse meshes instead of using a hardcoded index (#5340) (@diarmidmackenzie)
  • Fix examples miscellaneous errors (#5343) (@mrxz)
  • Fix back plane resizing when text component changes (#5357) (fix #2764) (@brycethomas)
  • Fix switching back and forth from hands to controller input (fix #5373) (@floe, @dmarcos)

Enhancements

  • Update to THREE r158 (@felixtrz, @dmarcos) (fix #5369)
  • Add hand-tracking-grab-controls component to make any entity manipulable with hands (@dmarcos)
  • Add support for WebXR Mesh and Planes Module (real-world-meshing component) (@dmarcos)
  • Add support for WebXR Anchors Module (anchored component) (@dmarcos)
  • Add support OVR_multiview extension (@felixtrz)
  • Add support for Quest 3 controllers (@dmarcos, @felixtrz)
  • New obb-collider implementing oriented bounding box colliders (@dmarcos)
  • Improve hand-trackin-controls pinch logic (@dmarcos)
  • Add anisotropy option to material and renderer (#5309) (@mrxz)
  • Linter improvements (#5342) (@diarmidmackenzie)
  • Add loopStart and loopEnd properties to sound component to play loops (#5364) (@JonathannJacobs)
  • Improve sorting / rendering order (#5332) (@diarmidmackenzie, @mrxz)
  • Redesign enter immersive mode UI (@vincentfretin, @msub2, @diarmidmackenzie, @thedart76, @dmarcos)
  • Replace the use of getJointPose with fillPoses and fillJointRadii in hand-tracking-controls to avoid memory allocations (#5298) (@mrs)
  • Handle conversion from sRGB to Linear-sRGB implicitly instead of calling applyColorCorrection (#5210) (@mrxz, @vincentfretin)
  • Add Pico 4 headset controllers support (#5281) (@felixtrz)
  • Update URL to basis encoder (#5329) (@vincentfretin)
  • Add Spatial Computing UI example (#7ea40c13) (@dmarcos)
  • Remove workaround for an old Chrome bug in the context of a-assets (#5335) (@mrxz)
  • Unit tests improvements (@mrxz, @dmarcos)
  • Consolidate references to the CDN URL in a global variable (#5333) (@diarmidmackenzie)
  • Docs improvements (@luc122c, @donmccurdy, @turbotimon, @lainshiHenry, @Rhys-Alexander, @vincentfretin, @dmarcos)

Deprecations

  • vr-mode-ui component renamed to xr-mode-ui (@dmarcos)
  • GearVR and Daydream support (@vincentfretin, @dmarcos)

Readme

Source

A-Frame

A-Frame

A web framework for building virtual reality experiences.

Coverage Status Downloads Version License

SiteDocsSchoolSlackBlogNewsletter

Examples

Supercraft A-Painter Supermedium A-Blast A-Saturday-Night Musical Forest by @googlecreativelab

Find more examples on the homepage, A Week of A-Frame, and WebVR Directory.

Features

:eyeglasses: Virtual Reality Made Simple: A-Frame handles the 3D and WebXR boilerplate required to get running across platforms including mobile, desktop, and all headsets (compatible with a WebXR capable browser) just by dropping in <a-scene>.

:heart: Declarative HTML: HTML is easy to read and copy-and-paste. Since A-Frame can be used from HTML, A-Frame is accessible to everyone: web developers, VR and AR enthusiasts, educators, artists, makers, kids.

:electric_plug: Entity-Component Architecture: A-Frame is a powerful framework on top of three.js, providing a declarative, composable, reusable entity-component structure for three.js. While A-Frame can be used from HTML, developers have unlimited access to JavaScript, DOM APIs, three.js, WebXR, and WebGL.

:zap: Performance: A-Frame is a thin framework on top of three.js. Although A-Frame uses the DOM, A-Frame does not touch the browser layout engine. Performance is a top priority, being battle-tested on highly interactive WebXR experiences.

:globe_with_meridians: Cross-Platform: Build VR and AR applications for any headset compatible with a WebXR capable browser. Don't have a headset or controllers? No problem! A-Frame still works on standard desktop and smartphones.

:mag: Visual Inspector: A-Frame provides a built-in visual 3D inspector with a workflow similar to a browser's developer tools and interface similar to Unity. Open up any A-Frame scene and hit <ctrl> + <alt> + i.

:runner: Features: Hit the ground running with A-Frame's built-in components such as geometries, materials, lights, animations, models, raycasters, shadows, positional audio, tracked controllers. Get even further with community components such as particle systems, physics, multiuser, oceans, mountains, speech recognition, or teleportation!

Usage

Example

Build VR and AR scenes in the browser with just a few lines of HTML! To start playing and publishing now, remix the starter example on:

Remix Fork

<html>
  <head>
    <script src="https://aframe.io/releases/1.5.0/aframe.min.js"></script>
  </head>
  <body>
    <a-scene>
      <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box>
      <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere>
      <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
      <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>
      <a-sky color="#ECECEC"></a-sky>
    </a-scene>
  </body>
</html>

With A-Frame's entity-component architecture, we can drop in community components from the ecosystem (e.g., ocean, physics) and plug them into our objects straight from HTML:

Remix Fork

<html>
  <head>
    <script src="https://aframe.io/releases/1.5.0/aframe.min.js"></script>
    <script src="https://unpkg.com/aframe-particle-system-component@1.0.x/dist/aframe-particle-system-component.min.js"></script>
    <script src="https://unpkg.com/aframe-extras.ocean@%5E3.5.x/dist/aframe-extras.ocean.min.js"></script>
    <script src="https://unpkg.com/aframe-gradient-sky@1.5.0/dist/gradientsky.min.js"></script>
  </head>
  <body>
    <a-scene>
      <a-entity id="rain" particle-system="preset: rain; color: #24CAFF; particleCount: 5000"></a-entity>

      <a-entity id="sphere" geometry="primitive: sphere"
                material="color: #EFEFEF; shader: flat"
                position="0 0.15 -5"
                light="type: point; intensity: 5"
                animation="property: position; easing: easeInOutQuad; dir: alternate; dur: 1000; to: 0 -0.10 -5; loop: true"></a-entity>

      <a-entity id="ocean" ocean="density: 20; width: 50; depth: 50; speed: 4"
                material="color: #9CE3F9; opacity: 0.75; metalness: 0; roughness: 1"
                rotation="-90 0 0"></a-entity>

      <a-entity id="sky" geometry="primitive: sphere; radius: 5000"
                material="shader: gradient; topColor: 235 235 245; bottomColor: 185 185 210"
                scale="-1 1 1"></a-entity>

      <a-entity id="light" light="type: ambient; color: #888"></a-entity>
    </a-scene>
  </body>
</html>

Builds

To use the latest stable build of A-Frame, include aframe.min.js:

<head>
  <script src="https://aframe.io/releases/1.5.0/aframe.min.js"></script>
</head>

To check out the stable and master builds, see the dist/ folder.

npm

npm install --save aframe
# Or yarn add aframe
require('aframe')  // e.g., with Browserify or Webpack.

Local Development

git clone https://github.com/aframevr/aframe.git  # Clone the repository.
cd aframe && npm install  # Install dependencies.
npm start  # Start the local development server.

And open in your browser http://localhost:9000.

Generating Builds

npm run dist

Questions

For questions and support, ask on StackOverflow.

Stay in Touch

And get in touch with the maintainers!

Contributing

Get involved! Check out the Contributing Guide for how to get started.

You can also support development by buying a gorgeous A-Frame t-shirt with exclusive designs

License

This program is free software and is distributed under an MIT License.

Keywords

FAQs

Last updated on 14 Nov 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc