A-Frame 1.8.0 Arrives: The HTML-First WebXR Framework Keeps Moving
Published: August 6, 2026
TL;DR: A-Frame 1.8.0 shipped on 23 June 2026, bringing the framework up to Three.js r184 along with better texture controls, improved controller reconnection handling and a pile of fixes. It's the first release since 1.7.1 in April 2025 — a fourteen-month gap — and there are two small breaking changes worth knowing about before you upgrade.
Why A-Frame still matters
A-Frame remains the lowest-friction way into WebXR. You write HTML tags —
<a-box>, <a-sky>, <a-entity> — and you get a VR scene that works in a headset. No build step, no bundler, no engine license. For a lot of the experiences listed on VR Sites, that accessibility is the entire reason they exist.
It also sits on top of Three.js, which means A-Frame releases are how a large chunk of the WebXR world inherits Three.js improvements without doing anything. That's the real significance of 1.8.0: the jump to r184 pulls in more than a year of upstream renderer work for anyone who just bumps a version number.
What's new
| Change | What it means |
|---|---|
| Three.js r184 | The headline change — a large upstream jump in the underlying renderer |
minFilter / magFilter |
Proper texture filtering control on the material component, replacing the old npot property |
premultipliedAlpha |
Now exposed on the material component — useful for correct transparency compositing |
stats-gl |
Replaces the deprecated rStats library in the stats component |
| Controller improvements | Better disconnection and reconnection handling, plus Logitech MX controller support with AR mode and variable brush stroke |
| Fixes | Cube texture light probe contributions, glTF model URLs changing mid-load, Content Security Policy compliance, and hand-controls orientation on Meta Quest controllers |
Two of those deserve a second look. Controller disconnection and reconnection is one of those unglamorous bugs that ruins a demo — a controller sleeps, the user picks it back up, and the experience never recovers. And CSP compliance matters more than it sounds: if you want WebXR content embedded on sites with a strict Content Security Policy, the framework has to not fight the policy. That's a deployment blocker quietly removed.
Before you upgrade: two breaking changes
1.
2.
npot is deprecated. If you were using npot: true to handle non-power-of-two textures, switch to minFilter: linear instead — you'll get better image quality out of it, not just parity.2.
shadow="type: pcfsoft" must become shadow="type: pcf". PCFSoftShadowMap was deprecated upstream in Three.js r182, so the old value no longer applies. Soft shadows are a common thing to have set and forgotten about, so it's worth grepping your scenes for it.
Neither is difficult, but both are the kind of change that silently degrades a scene rather than throwing an error — you notice a month later that your shadows look wrong.
The fourteen-month gap
Being straight about it: 1.7.1 shipped in April 2025 and 1.8.0 in June 2026. That's a long quiet stretch for a framework this widely used, and if you'd concluded at some point in that window that A-Frame had stalled, that was a fair read of the evidence.
The release itself is the counterargument. Pulling forward to r184, deprecating legacy properties in favour of the proper Three.js equivalents, and fixing CSP and controller lifecycle issues is maintenance work by people intending to keep the project alive — not a farewell release. A-Frame is community-maintained and independent, which buys it longevity that vendor-backed frameworks don't always get, at the cost of a release cadence that moves when contributors have time. For a project that a huge amount of the WebXR long tail depends on, "slow but still moving" beats most of the alternatives.
The bottom line: A-Frame 1.8.0 isn't a reinvention — it's the framework catching up to its own foundations and clearing out deprecated corners. If you maintain an A-Frame experience, the upgrade is worth doing for r184 alone; just fix your
npot and pcfsoft usages on the way through.
Sources & further reading:
A-Frame ·
A-Frame releases on GitHub ·
Three.js ·
A-Frame 1.8.0 documentation