added
ViroReact 3.0.0 — Five platforms, VPS, co-location
about 3 hours ago by ReadMe API
ViroReact 3.0.0 runs on five platforms from one codebase — iOS, Android, Meta Quest, Apple Vision Pro, and the web — and ships three major capabilities: VPS, co-location, and mixed reality on Meta Quest.
Platforms
- Apple Vision Pro is reachable through
ViroXRSceneNavigatorin an ImmersiveSpace. Pair@reactvision/react-native-visionosand scaffoldvisionos/from@reactvision/visionos-template. Root scenes inViroScene(notViroARScene); components without a visionOS view manager warn once and render nothing instead of crashing. - Web runs via
react-native-weband the optional peer@reactvision/viro-web-renderer(WebAssembly). 3D needs WebGL2; AR additionally needs HTTPS and a device with an IMU.
VPS
Scan a room into a persistent coordinate frame, host it, and localise back into it later or from another device — with an optional world mesh for occlusion and physics.
- New observability:
getScanStatus(),getScanDiagnostics(), andgetWorldMeshStats()on the scene navigator. PollgetScanStatus()while walking a room; failedfinishScan()results now carrydiagnosticsso you can tell the user which threshold fell short. finishScan()without a precedingstartScan()is refused. Failed world-mesh snapshots name the precondition that failed.
Co-location
<ViroARCloudAnchor>places children in a resolved cloud anchor's location frame — the same physical metre on every device that mounts the samecloudAnchorId.- Replicated room state via
useViroReplicatedStateandViroReplicationClient— ordered, claim-before-write application state on its own socket. - Smoothing / rate limiting —
useViroSmoothedPeers,useViroSmoothedEntities,useViroThrottledWrite. - Frame helpers —
parseLocationTransform,locationToWorld,worldToLocation,invertTransform,poseCsv,transformDirection.
Co-location requires a paid ReactVision plan. See the Co-Location guide.
Meta Quest
Mixed reality uses the standard AR component API: pass a ViroARScene to ViroXRSceneNavigator. Plane anchors come from the headset's room model. New packaging defaults help Horizon Store validation (android.questArm64Only, android.questSupportedDevices).
Deprecated
onWorldMeshUpdateddoes not fire and never has. PollgetWorldMeshStats()instead. The prop remains so existing code compiles.
Fixed
- iOS: AVKit / UIImagePickerController controls no longer lose gestures when Viro is in the same app.
- Android: cloud-anchor and scan calls issued on a scene's first frame are queued until the AR session exists.
- Quest: two-hand drag ownership, click-through on highlighted buttons, and a
ViroControllercrash on first button event.
Migration
- Clear Gradle caches if an incremental Android build picks up a stale renderer AAR.
- No breaking changes for typical phone builds.