Skip to content

v2.44.1

Choose a tag to compare

@doranteseduardo doranteseduardo released this 19 Nov 23:07
· 113 commits to main since this release
d530ccb

Release Notes – v2.44.1

AR Plane Detection & Selection – Major Update

ViroARPlaneSelector – Complete Rewrite

Accurate Plane Shape Rendering

  • Planes now render using their actual geometric boundaries from ARKit/ARCore (via boundary vertices).
  • Automatic fallback to rectangular visualisation when vertex data is not available.
  • New useActualShape property to control rendering mode (default: true).

Map-Based Plane Tracking

  • Replaced array-based tracking with Map<string, ViroARPlaneType> for reliable and deterministic plane handling.
  • Plane identification now uses anchorId, eliminating index-based race conditions.
  • Improved stability for both plane selection and update cycles.

Multi-Alignment Detection

  • Added new alignment mode: "Both" for concurrent horizontal and vertical plane detection.
  • 25 detectors per alignment type for broader and more consistent scene coverage.
  • Enhanced scene understanding through simultaneous multi-plane detection.

Plane Classification Support (iOS)

  • ARKit plane classification now exposed, including: Wall, Floor, Ceiling, Table, Seat, Door, Window.
  • Classification data is included in all plane update callbacks.
  • Enables semantic placement and surface-specific logic.

Enhanced Properties & Callbacks

  • onPlaneDetected?: (updateMap) => boolean — Validate planes before adding them.
  • disableClickSelection?: boolean — Enables visual-only mode.
  • useActualShape?: boolean — Controls shape rendering behaviour.

Visual Improvements

  • Updated material to a bright, translucent blue (rgba(0, 122, 255, 0.5)) for improved visibility.
  • cullMode: "None" enabled for better Android rendering compatibility.
  • Corrected alpha blending and depth buffer behaviour.

ViroARPlane Improvements

Improved Vertex Handling

  • More accurate 3D-to-2D vertex conversion for shape mapping.
  • Unified coordinate system handling across iOS and Android.
  • Corrected rotation logic for horizontal and vertical surfaces.

Enhanced Anchor Data

  • Plane anchors now provide full metadata: position, rotation, scale, centre, and dimensions.
  • Classification and vertex data included in all callbacks.
  • Consistent and reliable anchorId tracking throughout the plane lifecycle.

Architecture & Performance

16KB Page Size Support

  • Full compatibility with modern Android devices using 16KB memory pages.

Breaking Changes

Removed Properties (ViroARPlaneSelector)

  • maxPlanes removed (replaced by dynamic 25-detector-per-alignment behaviour).
  • ViroCommonProps and ViroObjectProps removed from type definitions.
    • These properties were previously documented but non-functional.
    • The component now exposes only explicit, fully supported props.

Internal State Refactor

  • Internal state has been migrated from an array to a Map.
    • (This affects only direct internal state access and does not impact typical usage.)