Aframe Versions Save

:a: Web framework for building virtual reality experiences.

v1.0.0

5 months ago

WebXR final spec support!

Subscribe to the newsletter to continue to support A-Frame!

Major Changes

  • WebXR spec support (@klausw, @Artyom17, @dmarcos)
  • Support WebXR gamepads module (#4322) (@dmarcos, @arpu)
    • HTC Vive (@dmarcos)
    • Daydream (@arpu)
    • Oculus Rift (@DigiTec, @dmarcos)
    • Oculus Rift S (@DigiTec, @dmarcos)
    • Oculus Go (@arpu)
    • Oculus Quest (@dmarcos, @Knochi)
    • Microsoft Mixed Reality (@arpu)
    • Vive Focus (@IvoJager, @dmarcos)
  • Support experimental WebXR AR mode (#4281) (@klausw)
  • New enter VR and AR icons (#4326) (@klausw, @brendanciccone, @ngokevin, @thedart76 and all members of the community that provided feedback)
  • Quest controller support (#4073) (@DigiTec, @dmarcos)
  • Set 72Hz mode by default on Oculus Browser for Quest (#4232) (@dmarcos)
  • Fallback to WebVR on Oculus Browser until WebXR gamepad module ships (#4342) (@dmarcos)
  • Permission dialog to request access to DeviceOrientation events due to iOS 13 new policy (#4303) (@KevinEverywhere, @dmarcos)
  • Update to THREE r111

Fixes

  • Fix resolution drop on exiting VR mode (#4246) (@tomegz)
  • Don't emit synthetic vrdisplaypresentchange event unless there's native WebVR implementation (#4301) (@dmarcos)
  • Set xrSession to undefined after exiting VR mode (#4321) (@klausw, @dmarcos)
  • Emit cursor mouseup if mousedown if it's only originated on scene (#4249) (@edsilv, @dmarcos)
  • Fix IE 11 fullscreen mode (#4243) (@AlexandraWins)
  • Bump animejs fork to fix flattenArray (#4158) (@ngokevin)
  • Replace undefined check to prevent ReferenceError in JavaScriptCore (#4318) (@nuel, @dmarcos)
  • Fix component.events singleton, events being overridden by components of the same type (#4250) (@ngokevin)
  • Honor embedded mode on loading screen (#4245) (@dmarcos)
  • Fix incorrect response type inference for glb/gltf files (#4219) (@Ely-S)
  • Fix WebVR deep-linking / navigation (#4199) (@Artyom17)
  • Restore render target to canvas to prevent freezes (@dmarcos)
  • Adjust three-bmfont-text to THREE r111 API changes (#4331) (@dmarcos)
  • Don't consider Firefox Reality and Oculus Browser mobile / phone browsers (#4338) (@dmarcos)
  • DracoLoader Path set for THREE v108 (#4272) (@arpu)
  • Use glTF header to determine a-asset-item response type (#4228) (@Ely-S)
  • Remove setTimeout call in tick if not raycaster.showLine (#4192) (@ngokevin)
  • isMobileVR differentiates Samsung Internet for Gear VR from Samsung Internet for Android (#4188) (@DougReeder)
  • Apply handedness to Oculus Go controller (#4162) (@dmarcos)
  • Fix button mapping for Vive Focus (fix #4344) (@dmarcos, @IvoJager)

Deprecations

  • Deprecate checkHasPositionalTracking (#4255) (@dirkk0)

v1.5.0

5 months ago

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

Check out the new examples: Anchors, World Meshing and Hand Grab Controls

If you find A-Frame valuable consider sponsoring on github. A-Frame is 100% maintained by volunteers and any help is super appreciated.

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)
  • 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

  • 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)
  • Update to THREE r158 (@felixtrz, @dmarcos) (fix #5369)
  • 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)

v1.4.2

1 year ago

Bug fixes

  • Fix issue when Quest 2 touch buttons are pressed before model has loaded (#5212, #5220) (@vincentfretin @mikemainguy)
  • Fix orientation of hand tracking models (fix #4848) (@DougReeder)
  • Fix problem with where image load quickly before the onload listener is attached. Manifests in particular for browser cached images (fix #5251) (@tomfelder94)
  • Fix loading order when A-Frame is used along defer and modules script tags (fix #5228) (@wmurphyrd)
  • Fix raycaster visual appearance when origin is not 0,0,0 (fix https://github.com/aframevr/aframe/issues/4882) (https://github.com/aframevr/aframe/pull/4884) (@Clicky02)
  • Fix problem when adding a single property component via mixin (#5273) (@kfarr @dmarcos)
  • Fix exception when trying to reference this pointer inside callback. (https://github.com/aframevr/aframe/pull/5221) (@diarmidmackenzie)
  • Change vertexColors property name to vertexColorsEnabled and make it a boolean to match THREE API (https://github.com/aframevr/aframe/pull/5250) (@diarmidmackenzie)

Enhancements

v1.4.1

1 year ago

Bug fixes

v1.4.0

1 year ago

A-Frame moved to custom elements V1, Oculus Quest Pro support, and tons of fixes and improvements in both A-Frame core and inspector 👏

28 A-Framers contributed to this one! You're awesome 🙇

Sponsor A-Frame to help us move the 3D Web forward.

You can also buy a cool t-shirt 👕

Major Changes

  • Move A-Frame to Custom Elements V1 API from the now deprecated Custom Elements V0 (fix #4262) (#5136) (@dmarcos)
  • Move build system from Browserify to Webpack adding support for ESM (#5116) (@vincentfretin)
  • Update to THREE r147 (@dmarcos @AdaRoseCannon @vincentfretin)
  • Inspector improvements and bug fixes (@vincentfretin)

Deprecations

  • Cardboard mode is now disabled by default as a first step towards deprecation. Magic window is now the fallback on mobile when native WebXR API is not available (fix #4814) (@dmarcos)

Enhancements

  • Add support for Meta Quest Touch Pro controllers (fix #5138) (#5139) (@felixtrz @cabanier @dmarcos)
  • Replace targetRaySpace with `gripSpace to position WebXR tracked controllers (#88e8db12) (@felixtrz @dmarcos)
  • Add support for KTX2 texture compression in gltf-model component (#5101) (@jameskane05)
  • Add a default for Draco decoder URL for the gltf model component (#5156) (@kfarr)
  • Hide fullscreen button in desktop mode on iPad. Safari doesn't seem to support fullscreen mode. (fix #4841) (#5191)
  • Detach inactive pool entities from THREE Scene avoiding unnecessary matrix updates and raycaster checks / hits (#5188) (@diarmidmackenzie)
  • Add support for WebXR foveation level. Only WebVR API was previously supported (fix #5108) (#5110) (@mrxz)
  • Events emitted on a cursor entity also pass original MouseEvent and TouchEvent events when applies.
  • Update unit test stack and fix test suite (#5091) (@vincentfretin)
  • Display fullscreen button when AR / VR mode are not available (#ce23027d) (@dmarcos)
  • Add xrselect option to rayOrigin property in cursor component so it can be used in a WebXR AR context (#5065) (@AdaRoseCannon)
  • tracked-controls-webxr reference space is now configurable (#5040) (@msub2)
  • New light component property to enable directional lights to track objects and update shadows automatically (#5025) (@AdaRoseCannon)
  • New toneMapped property on renderer system. Flat materials can now opt out of tone mapping to look like light emitting surfaces. (#5029) (@AdaRoseCannon)
  • Update hand tracking model (fix #5185) (@dmarcos @vincentfretin)
  • Factor out and document throttleLeadingAndTrailing (#5151) (@diarmidmackenzie)
  • Docs improvements (@nikolas @dirkk0 @JGrotex @Kershawj @juunini @andrejsmelnikovs @csxiaoyaojianxian @Kirshach @diarmidmackenzie @Chabloz @vincentfretin @karunstha @janarthnk @Utopiah @daniel-schroeder-dev @Descent098 @oroju1)

Bug fixes

  • Fix triggerchanged event not firing with Oculus Quest 2 controllers (#5149) (@msub2)
  • Fix issue of loading screen displayed indefinitely (#5033) (@diarmidmackenzie)
  • Remove duplicated update shader logic (#6858ed66) (@dmarcos)
  • Fix ray positioning for Oculus Quest 2 controllers (#5141) (@felixtrz)
  • Fix reflection component removal (#5125) (@vincentfretin)
  • Fix Quest 1 controller ray positioning (fix #5183) (#5190) (@vincentfretin)
  • Set default dev port to 8080. Oculus OS / Browser now block port 9000 and it's no longer usable (#0f508ad2) (@dmarcos)
  • Fix Oculus Quest 2 controller button animation and highlights (fix #5067) (#5103) (@kylebakerio)
  • Stop render loop when a-scene is removed from the DOM (#5112) (@vincentfretin)
  • Fix Github CI (#5092) (@vincentfretin)
  • Don't emit granted events if DeviceOrientationEvent permission is not granted (#5079) (@diarmidmackenzie)
  • Fix removal of components with the name pattern component-name__sufix. Used on multiple instances of a single component (fix #5080) (#5081) (@diarmidmackenzie)
  • Exclude a-mixins when camera system tries to retrieve camera entities (fix #5023) (@mattrossman)
  • Reset wasd-controls velocity when axis properties change (#5050) (@vulture-boy)
  • Match screenshot component and scene encoding (#5157) (@diarmidmackenzie)
  • Fix VR/AR buttons positioning in embedded mode (fix #5158) (@dmarcos)
  • Remove examples warning messages (fix #5184) (@dmarcos @vincentfretin)

v1.3.0

2 years ago

WebXR immersive session and hand tracking fixes!

Sponsor A-Frame to help us move the 3D Web forward.

You can also buy a cool t-shirt 👕

Major Changes

  • Update to THREE r137 (@dmarcos)

Fixes

  • Don't try to use hit test in VR. API only available in AR mode (#5005) (@AdaRoseCannon)
  • Fix canvas size calculation on embedded mode (fix #4911) (@s-light)
  • Fix reference space for WebXR Layers (#4991)
  • Fix problem when material map doesn't reflect the offset and repeat properties set via setAttribute (#4985) (@diarmidmackenzie @arturitu)
  • More robust componentchanged event. We were skipping the last component state transition event during a component change burst if last modification happens within throttle interval. (fix #4972) (@diarmidmackenzie @dmarcos)
  • Emit mouseenter, mouseleave, click cursor events component when order of intersected entities changes (fix #4978) (@diarmidmackenzie @dmarcos)
  • Prevent render loop to start before the camera is ready (#4967) (@wtodd1)
  • Fix mouse based cursor entity intersection when used with ortographic camera (#4935) (@kfarr)
  • Fix wrapping on distortion maps (#4932) (@AdaRoseCannon)
  • Remove checks to prompt the user to switch to mobile mode on mobile browsers disguised as desktop (e.g: iPad) Browsers now ship with DeviceOrientationEvent API enabled. (fix #4798) (@PlumCantaloupe @dmarcos)
  • Adds support for glTF models compressed with EXT_meshopt_compression (#4910) (@donmccurdy)
  • Add missing dependency to fix 360 image gallery example fade animation (#4896) (@vincentmi)
  • Fix hand model to accommodate changes in the hand tracking API implementation (66e0c624) (@dmarcos)
  • Fix hit-test logic on model-viewer example (db633024) (@dmarcos)
  • Fix SDF text shader for WebGL1 devices (fix #4827) (@Dirk-27)
  • Replace SphericalReflectionMapping (now deprecated in THREE) with EquirectangularReflectionMapping (fix #4818) ( @diarmidmackenzie)
  • Automatic generation of environment map (#4797) (@AdaRoseCannon)
  • Fix copy in device orientation permission dialog (#4794) (@antoninklopp)

Enhancements

  • Add phong shader to material component (#5001) (@AdaRoseCannon)
  • Allow newer npm version in package.json (#4870) (@cwadrupldijjit)
  • Add support for AR hit-test for Augmented Reality headsets and handsets (#4892) (@AdaRoseCannon)
  • Add some default styling to WebXR DOM-Overlay (#4901) (@AdaRoseCannon)
  • Add some default styling to DOM-Overlay (#4901) (@AdaRoseCannon)
  • Integrate WebXR background lighting estimation API and environment maps for AR scenes (#4890) (@AdaRoseCannon)
  • Use THREE.Cache API with a-assets.js (#4864) (@takahirox)
  • Add Reverb G2 Support (#4845) (@zach-capalbo)
  • Remove workaround to match Vive profile id with the one returned by Chrome. Chrome is now reporting the id matching the official WebXR profile (fix #4846) (@juliusikkala, @dmarcos)
  • Replace live-server by five-server (#4836) (@yandeu)
  • Add sRGB encoding to perspective screenshot (#4822) (@kfarr)
  • Add registerShader texture example (#4795) (@mordof)
  • Docs improvements (@epic-developer @jacob-willden @barthy-koeln @vincentfretin @RobinMglsk @a0m0rajab @kfarr @technobotanist @cao-jacky @schmelto @jlecordier @oneWaveAdrian @danbuckland @diarmidmackenzie @dmarcos)

v1.2.0

3 years ago

WebXR immersive session and hand tracking fixes!

Sponsor A-Frame to help us move the 3D Web forward.

You can also buy a cool t-shirt 👕

Major Changes

Fixes

  • Fix hand tracking (https://github.com/aframevr/aframe/commit/97be8159d3769f4602e24ca870b754741f78777b) (@dmarcos)
  • Fix immersive mode in Chrome for Android and Microsoft Edge. (THREE r125)
  • Don't initialize text mesh until the font has loaded. This prevents the raycaster to intersect prematurely and emit spurious events (#4742) (@quantumalchemy @dmarcos)
  • Fix raycaster overriding line default color (#4743) (@GMartigny @dmarcos)
  • Make sure enter-vr / exit-vr events are emitted when entering fullscreen (#4740) (@stefanhuber @dmarcos)
  • Fix problem with wasd-controls when opening a contextual menu with right click while pressing WASD simultaneously. Camera movement doesn't stop when releasing keys (#4766) (@djoksimo @dmarcos)
  • Fix inspector toggle on US international keyboards (#4516) (@svenkonings @dmarcos)
  • Make sure generic controls have the lowest precedence when vendor specific ones are also defined (#4784) (@fordacious @dmarcos)
  • Fix tests (@dmarcos)

Deprecations

  • THREE r125 deprecates THREE.Geometry

Enhancements

  • Docs improvements (@tete-github @luics @KovacsGG @dmarcos)

v1.1.0

3 years ago

5 years of A-Frame! 🥳

40 amazing A-Framers participated in this release. Thank you 👏

AR, hand tracking, compositor layers, immersive navigation (Quest only), Quest 2 support and much more.

Buy a t-shirt 👕 and support A-Frame developmet

Major Changes

Fixes

  • Fix problem with Windows Mixed Reality controller falling to generic model @arpu
  • Fix incorrect values returned by the axismove event on Oculus Quest (#4472) @Sujoy-Ghosh
  • Fix npm run dist command when running in zsh @benallfree
  • Fix wasd-controls easing to prevent sudden position jumps (#4241) @ntamas
  • Replace calls to THREE: getWorld* methods that don't know work in immersive mode (#4521) @NNskelly @dmarcos
  • Fix undetected controllers when using WebXR API @cabanier @Artyom17
  • Fix selectstart / selectend never detected by the cursor component @vincentfretin
  • Fix for duplicated cursor component events (#4494) @binzume
  • Listen to sessiongranted event only if WebXR is available @dmarcos
  • Bump webvr-polyfill to fix magic window mode in iOS 13 (#4554) @jwjordan @dax72 @NomisGnos @dmarcos
  • Fix Gear VR controller detection @vincentfretin
  • Fix spectator camera mode when entering VR mode (#4666) @broehl @dmarcos
  • Fix duplicated cursor component event in VR mode (#4494) @binzume @dmarcos
  • Background component can now be removed (#4676) @NVFedorov @dmarcos
  • Fix screenshot component (#4685) @bknill @dmarcos
  • Add user gesture to start video playback in examples @dmarcos
  • Fix white stripe at the bottom of the screen when exiting VR mode in iOS (#4617) @jgutierro @dmarcos
  • Fix msdf shader compatibility with WebGL 1 devices (Safari iOS) @dmarcos
  • Fix for immersive navigation where the sessiongranted event was not captured @dmarcos
  • Move raycaster collision detection from tick to tock to prevent bogus collisions on first frame @dmarcos
  • Fix for camera pose not correctly restored when exiting VR mode @dmarcos
  • Make sure exit immersive logic runs when exiting AR mode @dmarcos
  • Add vr-mode state to <a-scene> when entering immersive mode with WebXR @dmarcos
  • Fix Valve Index controller button mappings @dmarcos

Enhancements

  • Pass high-performance to the WebGL context to prioritize rendering performance over power consumption @arpu
  • Docs improvements @rotoglup @richardjbaker @klausw @dmarcos @kfarr @majecty @AdaRoseCannon @ngokevin @sonnynomnom @lordbron @da4throux @danbuckland @vikohone @pixelistik @vincentfretin @stefanhuber
  • Code hygiene @Jamesgt @Shalwaban
  • Use new THREE.WebGLRenderer outputEncoding @arpu
  • Make msdf shader WebGL 2 compliant @arpu
  • Valve Index controller support @zach-capalbo
  • Cordova compatibility @benallfree
  • Change look-controls hmdEnable property name to magicWindowTrackingEnabled @dmarcos
  • Improve hand tracking pinch gesture accuracy @cesmoak (#4691)
  • Improve error handling when entering immersive mode (#4660) @federico-camonapp @dmarcos
  • Make text of device permission ui component dialogs configurable @dmarcos
  • Add look controls mouseEnabled property to enable / disable mouse input @dmarcos
  • Add model viewer example with AR / VR and 2D mode compatibility @dmarcos
  • Add user interface example that works in VR, desktop and mobile @dmarcos
  • Make raycaster component line color configurable @dmarcos
  • Add info panel to examples @thedart76 @dmarcos to show instructions, controls and credit authors.

v1.0.4

4 years ago

Bug fixes

Subscribe to the newsletter to continue to support A-Frame!

Fixes

  • Reset referenceSpace and controllers list when entering / exiting VR (#4406) @AG-LucidWeb @Artyom17 @dmarcos
  • Fix WebXR buttons mapping for Oculus Go controller @dmarcos
  • Properly remove selectstart / selectend event listeners when XR session ends @DougReeder
  • Apply handedness orientation directly to the hands model (#4388) @dbradleyfl @dala00 @dmarcos
  • Set tracked-controls armModel default to false (#4405) @dmarcos
  • matrixAutoupdate to false on camera in WebXR case (#4383) @liewol @dmarcos
  • Check if headset is connected when ignoring mousedown events (#4380) @AG-LucidWeb @dmarcos
  • Get rid of invalid character in TRHEE build (#4428) @kennardconsulting @dmarcos

Enhancements

  • Dithering property in materials component (#4433) @Firepal
  • Magic Leap Controller Support @atarng-magicleap
  • New high poly, low poly and toon styles for hand-controls @arturitu
  • Listens to WebXR selectstart / selectstart and reemits as mousedown / mouseup. Simple screen input for AR experiences (fix #4407) @dmarcos
  • Use full hash in dependencies to comply with pnpm @pleku
  • Color property in hand-controls @arturitu
  • Docs improvements @d2s @ChicagoDev @dirkk0 @omgitsraven @dmarcos
  • Add API to set WebXR far and near camera planes (#4387) @DougReeder

v1.0.3

4 years ago

Bug fixes

Subscribe to the newsletter to continue to support A-Frame!

Fixes

  • Add support for Gear VR controller over WebXR (@Artyom17, @dmarcos)
  • Add support for Oculus Go controller over WebXR (@Artyom17, @arpu, @dmarcos)
  • Fallback to a generic controller when a WebXR gamepad is not recognized (#4376) (@Artyom17, @dmarcos)
  • Match physical and virtual position of Quest and Rift S controllers (fix #4374) (@Artyom17, @dmarcos)
  • Consider initial device orientation for magic window tracking. Fix problem when experience loads in landscape orientation on Android devices (@dmarcos)
  • Listen to DOMContentLoaded if scene is not defined before updating the enter VR UI (#4373) (@mkungla, @dmarcos)