A-Frame v0.3.0 Release Notes

Release Date: 2016-08-17 // over 7 years ago
  • 🐎 0.3.0 improves performance, adds support for the WebVR 1.0 API, and adds tracked controllers (using experimental Gamepad APIs).

    Major Changes

    • 👍 WebVR 1.0 API support. (#1423)
    • 🚚 Default camera is now positioned at 0, 1.6, 0 rather than 0, 1.8, -4. In VR mode, the 1.6m height offset as defined by camera.userHeight is removed. (#1474, #1718)
    • 🐎 Components no longer serialize stringified data to the DOM for performance. Introduced debug mode and flush-to-DOM methods. (#1323)
    • No longer able to provide own <canvas> element. (#1474)
    • 📇 Geometries default to be BufferGeometrys, saving memory at the cost of being more difficult to manually manipulate. Use geometry="buffer: false" to disable. (#633) -- Geometry data is preserved in geometry.metadata. (#1557).
    • ✂ Removed deprecated declarative events, loader component, and <a-cube>. (29446e0)
    • Abstract raycasting-related properties out of the cursor component into the raycaster component. (#1196)
    • Have shaders handle applying texture objects to material objects rather than material system. (2cee9eb)
    • ✂ Removed geometry component's translate property, added a pivot component in extras/. (#1339)
    • 0️⃣ Renamed defaultAttributes to defaultComponents in registerPrimitive API. (#1460)
    • 0️⃣ Default lighting setup tweaked. (#1478)
    • Made sound.src use the src property type. Sound URLs must now either be wrapped in url() or a selector to an <audio> element. (#1629)
    • ➕ Added A-Frame Code of Conduct. (#954)
    • ↪ Reduced webvr-polyfill BUFFER_SCALE to 1 / window.devicePixelRatio only for iOS versions under 10 as a workaround to a Webkit bug. This will cause decrease resolutions on iPhone VR mode temporarily. It can be overridden in window.WebVRConfig.BUFFER_SCALE, but will cause canvas sizing issues upon entering stereo causing people to have to rotate their phones back and forth. (#1803)

    🗄 Deprecations

    ✨ Enhancements

    • ➕ Added tracked-controls, vive-controls, and hand-controls components. (#1584)
    • Added API for multiple components of the same type (e.g., sound__1, sound__2). (#1596)
    • ➕ Added schemas to systems. (#1589)
    • <a-asset-item>s now truly cached and only fetched once. (#1700)
    • ➕ Added better support for embedded scenes with <a-scene embedded>. (#1474)
    • Can now enter fullscreen if headset is not connected. (#1474)
    • ➕ Added AFRAME.registerGeometry API such that each geometry type has its own distinct schema. (#1162)
    • ⬆️ Bumped webvr-polyfill to 0.9.15. (#1618)
    • Dispose THREE.Geometry and THREE.Material objects when no longer in use to save memory. (#1287)
    • 🚚 Moved texture caching to material system. (#1315)
    • ⬇️ Reduced default <a-sky>, <a-videosphere> segments. (#1319, #1532)
    • ➕ Added geometry caching system to save memory. (#1347)
    • 👌 Improved GearVR support. (#1336)
    • ✂ Removed unnecessary object diffing calls. (1c924b6)
    • ➕ Added geometry merging API to reduce number of draw calls for geometries that share the same material. (bd0dbcb)
    • ➕ Added support for animation of color property types. (#1302)
    • ➕ Added icosahedron, dodecahedron, octahedron, tetrahedron geometries. (#1413, #1493)
    • 👍 Better NPM v3 support. (#1430)
    • ➕ Added more properties to the raycaster component. (#1196)
    • ➕ Added more properties to the sphere component. (#1454)
    • ➕ Added light.intensity, light.target properties. (#1270, #1728)
    • ➕ Added camera.zoom property. (#1453)
    • ➕ Added <a-sound>, <a-torus-knot> primitives. (#1455, #1456)
    • ➕ Added componentremoved event for entities. (#1434)
    • ✂ Remove injected A-Frame favicon. (#1415)
    • ➕ Added end attribute for animations to stop on events. (#1481)
    • ➕ Added separate delay attribute for animations. (#1508)
    • ➕ Added material.flatShading, material.visible properties. (#1503, #1690)
    • 0️⃣ Defaulted geometry.primitive to box. (#1523)
    • 🔖 Versioned the A-Frame documentation.
    • Custom materials lifecycle methods only require to set this.material rather than return. (#1549)
    • ➕ Added support for <canvas> to be a source of texture for materials. (#1567)
    • ➕ Added utility functions for getting and setting properties of multi-prop components. (#1595)
    • selectorAll property type now converts NodeList to Array. (#1642)
    • 🔄 Changed default stats UI background color to gray. (#1644)
    • 🔦 Exposed list of registered primitives. (#1643)
    • ✂ Removed instances of hard-coded <a-scene>, done to support an independent augmented reality (AR) initiative. (#1665)
    • ➕ Added cursor grabbing styles to look-controls component. (#1680)
    • ➕ Added support for mixins being attached at runtime, done to support a third-party CSS syntax for components. (#1610)
    • ➕ Added <ctrl> + <alt> + i shortcut to inject the A-Frame Inspector tool. (#1599)
    • ✂ Removed a Function.prototype.bind call on each frame render (#1808)