Releases: aframevr/aframe
Releases · aframevr/aframe
v1.8.0
Sorry, something went wrong.
No results found
1.8.0 (June 23, 2026)
Major Changes
- Bug fixes and improvements.
- Update THREE to r184
Bug fixes
- Fix issue when a loaded cube texture doesn't contribute to light probes (fix #5734) (#5735) (@mrxz)
- Fix issue when url of gltf-model changes when model is still loading (#5739) (@mrxz)
- Address unsafe-eval error with with strict Content Security Policy (CSP) (fix #5028) (#5821) (@vincentfretin, @samiemad, @mrxz)
- Replace Clock instance by Timer instance. Clock is deprecated in THREE r183+ (#5800) (@vincentfretin)
- Remove pcfsoft shadow type in shadow component, deprecated in THREE r182+ fallback to pcf (#5798) (@vincentfretin, @mrxz)
- Set dialogs text color explictitly to ovverride browser defaults that might result on white text on white background (#5814) (@vincentfretin)
- Fix issue when a tracked controller disconnects and reconnects (#5804) (@vincentfretin)
- Fix hand-controls orientation on Meta Quest Controllers (fix #5570, #5305, #5321) (#5766) (@filandra)
- Fix missing pixel row when capturing an image with the screenshot component (fix #5789) (#5790) (@diarmidmackenzie)
- Fix issue with loading screen dismissed prematurely while images are still loading (#5779) (@vincentfretin)
- Click event triggered on the wrong controller with the cursor component (#5782) (@vincentfretin)
- Fix incorrect error handling when an image fails to load in the material component (#5781) (@vincentfretin, @mrxz)
- Prevent erronously caching images that have failed to load (#5778)
- Identify controllers by id instead of idPrefix in tracked-controls (fix #5772) (#5774) (@vincentfretin)
- Fix issue where controller model is not visibile when toggling between hands and controllers (fix #5757) (#5777) (@vincentfretin)
- Use unique cache keys per file type when caching to match THREE r178+ convention (#5776) (@vincentfretin)
- Fix axis names for Windows motion controls (#5732) (@hazho)
- Make quad layers feature optional so it works on devices not supporting WebXR layers like Apple Vision Pro (#5722) (@vincentfretin)
- Fix wrong geometry size in layer component (#5723) (@vincentfretin)
- Fix check for XRWebGLBinding existance in layer component (#5721) (@vincentfretin, @mrxz)
- Replace npot property in material component with the more explicit minFilter and magFilter (#5717) (@mrxz)
- Verify this.quadPanelEl exists before toggling the layer visibility (#5708) (@vincentfretin)
Enhancements
- Reintroduce needsRedraw flag to force updates on the layer component (#5724) (@vincentfretin)
- Replace rStats with stats-gl in stats component (fix #5397) (#5700) (@arvind-iyer)
- Remove stats div from DOM when removing the stats component (#5733) (@vincentfretin)
- Update shadow light properties only for lights that support shadows (#5748) (@mrxz)
- Improve Logitech MX support: Enable use in AR mode, support variable brush stroke on button / tip pressuer (#5756) (@FilipeLopesPires)
- Remove obsolete variable assignments in tracked-controls component (#5770) (@vincentfretin)
- Remove obsolete / dead logic to rotate the Meta Touch model thumbstick (#5775) (@vincentfretin)
- Set raycaster.camera to the active camera in order to raycast against sprites (@vincentfretin)
- Expose premultipliedAlpha on material component (#5810) (@vincentfretin)
- Docs improvements (@vincentfretin, @thatguyjk, @Utopiah, @ccoenen, @mrxz, @vaibhavyxx, @Omegahed, @dmarcos)
- Improve tests (@vincentfretin, @kitsiosk, @dmarcos)
- Build system improvements (@vincentfretin, @mrxz, @daj, @dmarcos)
- Set generateMipmaps for material component (#5726) (@vincentfretin, @mrxz)
- Don't unnecessarily initialize 6 canvas for quad layers. (#5707) (@vincentfretin)
- Set meshMixin property default value to correct type in real-world-mesh componet (#5712) (@vaibhavyxx)
- Use XRMediaBinding.createQuadLayer to render flat video on a layer (@vincentfretin)
Deprecations
- If you used material npot: true previously as a way to set texture.minFilter = THREE.LinearFilter for better image quality, you need to replace it with minFilter: linear. That change was introduced in #5717 that removed npot property that was legacy of WebGL1, new material properties minFilter and magFilter have been exposed instead.
- If you used shadow="type: pcfsoft", change it to shadow="type: pcf". From three.js migration guide for r182: PCFSoftShadowMap with WebGLRenderer is now deprecated. Use PCFShadowMap which is now soft as well.
v1.7.1
Sorry, something went wrong.
No results found
1.7.1 (Apr 1, 2025)
Bug fixes
v1.7.0
Sorry, something went wrong.
No results found
1.7.0 (Feb 20, 2025)
Post-processing, ES modules and importmap, WebGPU and TSL support, Logitech MX Ink integration and more.
Major Changes
Bug fixes
- Remove unused width and height properties from flat and standard shaders (#5647) (@mrxz)
- Relax the clientWidth constraint in the controls tests. Fix tests on Ubuntu (#5641) (@vincentfretin)
- Check if XRSession exists before attaching inputsourcechange listener (#5631) (@mrxz)
- Don't apply anchor scale (only position and rotation) to an anchored entity (#5633) (@mrxz)
- Wait until referenceSpace is available befor initializing compositor layers (#5626) (@vincentfretin)
- Remove raycaster-closest-entity-changed listener when removing the cursor component (#5625) (@vincentfretin)
- Handle cursor rayOrigin updates and rayOrigin: mouse when component attached to an entity and not a-scene (fix #4759) (#4760) (@kylebakerio)
- Fix light shadow frustum visualization via CameraHelper (fix #5098) (#5099) (@IanSweeneyAC, @dmarcos)
- Prevent loading cubemap for a probe light when envMap is not set (fix #5610) (#5611) (@mrxz)
- Prevent redundant pinchstarted events on a hand tracking pinch gesture (#5609) (@mrxz)
- Improve cursor component xrselect logic. Handle rayOrigin property changes and account for camera rigs when calculating the raycaster direction (#5606) (@mrxz, @vincentfretin)
- Fix Apple Vision Pro detection logic to prevent false positives on iPad and iPhone (fix #5605) (#5607) (@vincentfretin)
- Remove fullscreen CSS styles from the document element when a-scene is disconnected (#5602) (@gunhaxxor)
- Adjust light intensity defaults and examples to account for WebGLRenderer.useLegacyLights deprecation in THREE r165 (#8813d3d2) (@dmarcos)
- Fix model visibility logic of tracked hands and controllers when there are input switches (e.g hands to controllers) (#fa0cc748) (@dmarcos)
- Prevent a-loader-title div (A-Frame created HTML element) to be serialized (#5574) (@vincentfretin)
- Disable magic window mode in Vision Pro that is only suitable for handheld mobile devices (#5560) (@dmarcos)
- Don't bubble <a-asset-item> error event that was preventing some tests to execute (#5548) (@mrxz)
- Don't stringify properties with undefined values to prevent flushToDOM to produce properties with the undefined string (#5549) (@mrxz)
- Fix serialization / stringification of asset type properties. When an HTML element they got exported incorrectly as e.g [object HTMLImageElement] (#5544) (@mrxz, @vincentfretin)
- Refresh raycasted objects only when the objects raycaster component property changes. Prevent unnecessary costly updates (#5542) (@vincentfretin)
- Fix issue when using <a-cubemap> as texture component envMap (@Omegahed, @mrxz)
- Fix incorrect texture reference counting, potentially leading to exceptions upon disposal of the texture (#5529) (@mrxz)
- Eliminate incorrect "unknown property" warnings from dynamic schema components (#5526) (@mrxz)
Enhancements
- Bump to THREE to r173 (@dmarcos)
- Post-processing experimental support (#5648) (@enzofrancescaHM, @CodyJasonBennett, @mrxz, @cabanier, @vincentfretin, @dmarcos)
- ES Modules and importmap support (#5632, #5640) (@mrxz, @vincentfretin)
- Support for WebGPURenderer and TSL (#5655) (@vincentfretin)
- Logitech MX Ink integration (@dmarcos)
- Update Draco decoder to 1.5.7 (#5523) (@vincentfretin)
- Remove process/browser polyfill in tests (#5643) (@vincentfretin)
- Improve build and test process (@vincentfretin)
- ar-hit-test uses tracked controller if available instead of head orientation (fix #5315) (#5308) (@DougReeder)
- Allows setting the distance within which the preview image of the link component is shown (#4425) (@DougReeder)
- Animate position, rotation and scale on the THREE.Object3D directly without calling setAttribute (#4f711a4efab) (@dmarcos)
- Update shelljs version (#5497) (@arpu)
- Ability to enable/disable enterVR and exitVR shortcuts independently (#5512) (@mrxz)
- Improve Pico headsets controller support on third-party browsers such as Wolvic (#5534) (@Elettrotecnica)
- Consolidate tracked-controls-webxr logic into tracked-controls. Separation no longer needed since WebVR support deprecation (#627698d4) (@dmarcos)
- Move WebXR controller detection to inputsourceschange event from a polling logic (#fd904348) (@dmarcos)
- Update Webpack and related build dependencies (#5480) (@vincentfretin)
- Add CodeQL scanning with one non-default query for scanning GitHub Actions (#5554) (@JarLob)
- Add AgX and neutral to the list of tone mapping options in the renderer component (#5551) (@vincentfretin)
- Docs improvements (@mrxz, @dmarcos, @Srile, @Control-C, @addy1997, @TomoyaKuroda, @vincentfretin, @jzhangdev, @Utopiah, @nikolas, @jadegamesuk, @diarmidmackenzie, @ogreenaway, @kewalkishang, @jinglechen2287)
Deprecations
- Remove physicallyCorrectLights since useLegacyLights is no longer supported by THREE.WebGLRenderer since THREE r165 (#0123f53749) (@dmarcos)
- Rename oculus-touch-controls to meta-touch-controls to reflect current branding. oculus-touch-controls kept around for backwards compatibility (#d3be3d2f) (@dmarcos)
- Remove the now obsolete WebVR support in favor of WebXR (#5451) (@mrxz)
- Deprecate isGearVR and isOculusGo functions (#5635) (@vincentfretin)
v1.6.0
Sorry, something went wrong.
No results found
1.6.0 (May 23, 2024)
Tons of bug fixes. Memory management and performance improvements. API to control tick / tock execution order.
Bug fixes
- Update wrist object position and rotation only when joint poses are available (#5438) (@mrxz)
- Fix issue when checking schema properties when a schema changes (#5426) (@mrxz)
- Set correct default value for scene.background when the background component is removed (#5417) (@mrxz)
- Fix fog removal from scene (#5418) (@mrxz)
- Fix Chrome non-passive violation warnings for touchmove and touchstart event handlers (#5511) (@mrxz, @mitchallen)
- Fix bug when loading models on child entities of controllers (#5415) (@mrxz)
- Fix bug in handling processSound callback when sound hadn't loaded yet (#5414) (@mrxz)
- Fix misspelled variable names after using a spell checker (#5462) (@mrxz)
- Fix problem when a shader that declares itself as glsl3 has its version ignored (bbe74f5) (@dmarcos)
- Fix problem when checking for duplicate names of property types (#5475) (@mrxz)
- Fix problem when adding children entities to a hand-tracking-controls entity before the hand model has loaded (12d550c) (@dmarcos)
- Hide hand-tracking-controls entity when there's no hand tracking available (dbdb9da) (@dmarcos)
- Fix issues when applying mixins to primitives (#5483) (@mrxz)
- Fix issue when a component is not removed from the DOM via mixin removal / update (#5492) (@mrxz)
- Fix timing issue when initializing XR Layers (#5489) (@zjm-meta)
- Fix problem where scene doesn't wait / timeout on a-asset-items (#5491) (@mrxz)
- Fix bug when using setAttribute on a-scene if a system has not yet initialized (#5482) (@mrxz)
- Fix broken parser cache of getComponentPropertyPath (#5467) (@mrxz)
- Fix issue when shadowMaps are always enabled. Make sure it's only enabled when there's a shadow component present (#5399) (@mrxz)
- Fix issue when children of an entity with hand-tracking-controls don't follow the hand (874fced) (@dmarcos)
- Fix ES modules support on node (#5522) (@vincentfretin)
- Make rotation axis order is consistent when using setAttribute and modifying object3D directly (#5513) (@mrxz)
- Fix issue when calculating the size of the bounding box of an obb-collider (5da7166) (@dmarcos)
- Fix issue when the el.hasLoaded flag can be true but not all components have initialized (924dc00) (@dmarcos)
- Fix issue when trying to remove a mesh before model was loaded in obj-model component (#5499) (@Elettrotecnica)
- Use renderer.useLegacyLights instead of the deprecated renderer.physicallyCorrectLights in THREE (#5389) (@vincentfretin)
- Set correct default value for glslVersion for non-raw shaders (#5388) (@mrxz)
- Remove "skinning: true" option when instanciating a THREE.MeshStandardMaterial object. Property deprecated in THREE (#5386) (@avdynut)
- Fix issue when tracking an unexisting AR Hitest anchor (@hi-liang, @dmarcos) (bcc4bc2) (fix #5314)
- Fix issue when layers are not initialized in AR mode (bb1e7a4) (@dmarcos)
- Fix issue when removing unexisting light probe after exiting vr mode (#5429) (fix #5384) (@Elettrotecnica)
- Fix issue when removing an obb-collider (957237d) (fix #5385)
- Fix typo when requesting layers on the WebXR requiredFeatures list (f7e56a8) (@dmarcos)
- Fix issue when trying to animate a non existing button on the controller (da8dc14) (@dmarcos)
Performance
- Improve unit tests execution time (#5477) (@mrxz)
- Recycle nextData and previousOldData objects when a component is destroyed preventing memory leaks (#5458) (@mrxz)
- Improve pooling and recycling of internal component objects. Better memory management (#5459) (@mrxz)
- Reduce memory allocations on component update logic (#5474) (@mrxz)
- Improve throttleLeadingAndTrailing implementation to prevent unnecessary allocations (#5476) (@mrxz)
Enhancements
- Introduce before/after component API to control tick / tock execution order (#5478) (@mrxz)
- Bump to THREE r164 (@dmarcos)
- Remove maximum canvas size (#5440) (@mrxz)
- Cache THREE.Source instead of THREE.Textures (#5449) (@mrxz)
- Introduce a sceneOnly flag for components that only apply to the a-scene element (#5465) (@mrxz)
- Switch unit tests from WebVR to WebXR (#5452) (@mrxz)
- Move back debug dependency from fork to upstream (#5508) (@arpu)
- Introduce stencil property in the renderer system (#5509) (@mrxz)
- Improve iPad detection logic to include iPad Pro (#5502) (@Drkjr92)
- Remove unnecessary attribute properties and special handling of is: "attribute" in shader component (#5310) (@mrxz)
- Improve async loading of aframe library and interoperation with ES module (#5481) (@mrxz)
- Improve system warning messages when setting an unknown property (#5463) (@mrxz)
- Use native bind method instead of custom implementation. Performance benefits of custom one no longer exist (#5461) (@mrxz)
- Add Pico4 controllers support to laser-controls component (#5435) (@IamTonio)
- Add hand model opacity to hand-tracking-controls (#5431) (@ehammons11)
- Postpone screenshot component offscreen canvas setup until a screenshot is taken (#5442) (@arpu)
- Update GitHub CI to use node 20.x (#5479) (@vincentfretin)
- Use window.isSecureContext instead of manually checking URL for http/localhost/127.0.0.1 (#5487) (@mrxz)
- Remove deprecated getComputedAttribut method (#5466) (@mrxz)
- Remove unnecessary crossOrigin configuration for THREE loaders (#5416) (@mrxz)
- Add support for navigator.xr.offerSession WebXR spec (#5410) (@cabanier)
- Add support for fog, toneMapping, colorSpace conversion and logarithmicDepthBuffer to the msdf shader used in the text component (#5409) (@mrxz)
- Remove minimum scale value. THREE handles zero scale gracefully (#5404) (@mrxz)
- Add hide-on-enter-vr component analog to hide-on-enter-ar (9e644de) (@dmarcos)
- Remove iOS 10 specific HLS workaround (#5450) (@mrxz)
- Remove outdated polyfills that were needed just for IE11 (#5448) (@mrxz)
- Docs improvements (@diarmidmackenzie, @Samu01Tech, @thepelkus-too, @Omegahed, stefanhuber, @ctrlw, @vincentfretin, @jgbarah)
v1.5.0
Sorry, something went wrong.
No results found
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
1.4.2
Sorry, something went wrong.
No results found
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 #4882) (#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. (#5221) (@diarmidmackenzie)
- Change vertexColors property name to vertexColorsEnabled and make it a boolean to match THREE API (#5250) (@diarmidmackenzie)
Enhancements
v1.4.1
Sorry, something went wrong.
No results found
v1.4.0
Sorry, something went wrong.
No results found
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
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
Bug fixes
v1.3.0
Sorry, something went wrong.
No results found
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
Enhancements
v1.2.0
Sorry, something went wrong.
No results found
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 (97be815) (@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