HomeGuidesChangelogDiscussions
Hire a ReactVision Expert 🛠️Launch Studio 🖥️Sponsor on GitHub ❤️Log In
Changelog
fixed

ViroReact 3.0.1 — Quest co-location & cloud-anchor callback cleanup

Shared coordinate frames now work on Meta Quest, and a never-wired cloud-anchor callback is removed.

Quest co-location

Two Quest headsets can agree on where the room is using Meta spatial anchors (not a ReactVision cloud anchor — OpenXR sessions have no camera image for SIFT localisation). Verified on Quest 3.

import { ViroSharedFrame, metaSpatialAnchorFrameSource } from "@reactvision/react-viro";

// Host
<ViroSharedFrame source={metaSpatialAnchorFrameSource(roomUuid, "create")} />

// Joiners
<ViroSharedFrame source={metaSpatialAnchorFrameSource(roomUuid, "join")} />

Requirements

  • Root the scene in ViroARScene (a fully virtual ViroScene has no AR session / anchor to share).
  • Run expo prebuild after upgrading so the config plugin can declare horizonos.permission.IMPORT_EXPORT_IOT_MAP_DATA. Without it, Meta hides the group-sharing extension and the headset appears not to support shared anchors at all.

Co-location remains same-family (Quest↔Quest, phone↔phone, Vision↔Vision). See Co-Location and the HorizonOS setup guide.

Removed

  • onCloudAnchorStateChange on ViroARSceneNavigator. The prop was declared but never wired on either platform, so setting it did nothing. Use instead:
    • hostCloudAnchor() / resolveCloudAnchor() — outcome (state on the result)
    • getCloudAnchorStatus() — progress while a resolve is in flight
    • rvGetCloudAnchor(anchorId) — current state of an anchor you did not just touch

ViroCloudAnchorStateChangeEvent stays exported and deprecated so existing imports still compile.

Nothing else changed. Renderer work for this release ships inside @reactvision/virocore 3.0.1 as prebuilt binaries.