ViroReact v2.44.2 โ AR Plane Detection & Selection Overhaul
With ViroReact 2.44.2, we're introducing a fully rewritten ViroARPlaneSelector, improved plane rendering accuracy, multi-alignment detection, exposed classification data, and major stability improvements across the entire plane lifecycle.
Support ReactVision
Love what weโre building? Help keep ViroReact thriving by becoming a GitHub Sponsor. Your support helps to fund core maintenance and new platform integrations. Did you know that if every install in the last 6 months had paid us just $1 we'd have enough budget to not only fund our current team but also grow the team further and accelerate development.
๐ Major Features
ViroARPlaneSelector โ Complete Rewrite
- Rendering now uses actual geometric boundaries from ARKit/ARCore via boundary vertices.
- Automatic fallback to rectangular planes when vertex data is unavailable.
- New prop: useActualShape (default: true).
Map-Based Plane Tracking
- Internal plane tracking migrated from array โ Map<string, ViroARPlaneType>.
- Plane identity now based on anchorId, eliminating index-based race conditions.
- More stable add/update/remove cycles.
Multi-Alignment Detection
- New alignment option: "Both" enables simultaneous horizontal + vertical plane detection.
- 25 detectors per alignment type for higher coverage and improved environmental understanding.
Plane Classification (iOS)
- ARKit classifications now exposed and available in all update callbacks:
- Wall
- Floor
- Ceiling
- Table
- Seat
- Door
- Window
- Enables semantic placement and surface-aware logic.
๐ ๏ธ Enhanced Properties & Callbacks
onPlaneDetected?: (updateMap) => boolean
Validate incoming planes before theyโre added.
disableClickSelection?: boolean
Enables visual-only plane rendering mode.
useActualShape?: boolean
Toggle between native geometry or rectangle fallback.
๐จ Visual Improvements
- Updated material to bright translucent blue (rgba(0,122,255,0.5)).
- cullMode: "None" enabled for improved Android rendering.
- Improved alpha blending and depth buffer handling across both platforms.
๐ ViroARPlane Improvements
- More accurate 3D โ 2D vertex conversion.
- Unified coordinate system across iOS + Android.
- Corrected rotation handling for horizontal + vertical surfaces.
- Anchors now expose full metadata:
- position
- rotation
- scale
- centre
- dimensions
- classification
- vertex data
โ๏ธ Architecture & Performance
- Full support for 16KB memory page size devices on Android.
- Significantly improved internal state management using Maps.
๐ฅ Breaking Changes
- maxPlanes removed โ replaced by dynamic 25-detector system per alignment type.
- ViroCommonProps & ViroObjectProps removed from type definitions (previously non-functional).
- Array-based selectors removed; moving forward only explicit properties are exposed.
Need Help?
If you're looking for support getting started or want an expert to help you build a comprehensive AR or VR application, look no further than our community Discord and our trusted experts.
Join the ReactVision Discord โ๏ปฟ
๏ปฟ
Support ReactVision
Love what weโre building? Help keep ViroReact thriving by becoming a GitHub Sponsor. Your support funds core maintenance and new platform integrations. Did you know that if every install in the last 6 months had paid us just $1 we'd have enough budget to not only fund our current team but also grow the team further and accelerate development.