added
ViroReact 3.0.2 — Studio co-location & web player reliability
about 3 hours ago by ReadMe API
The web player, fixed against real scenes, and co-location in StudioSceneNavigator. Large models load instead of killing the renderer, taps land where they are drawn, and web AR holds steady through tracking dropouts. A Studio scene can now be shared between devices in the same room. Web needs @reactvision/viro-web-renderer 1.0.1 (peer range asks for it).
Studio co-location (new)
Share a Studio-authored scene with other devices in the same physical space via the colocation prop on StudioSceneNavigator:
// Host — scans the space and creates a room with a six-character join code
<StudioSceneNavigator colocation={{ mode: "host" }} />
// Join — aligns to the host's space
<StudioSceneNavigator colocation={{ mode: "join", code: "AB12CD" }} />
- A live room shares variables, visibility, tap-to-place positions (last write wins), drags (dragging device holds the asset), and
NAVIGATE. Animation triggers and sounds play on every device while the function behind them runs on one. Collision bindings keep running when the host leaves. - State and control:
onColocationStateChange,onColocationRoom,colocationIndicator, plus ref methodsleaveColocation(),getColocationRoom(),finishColocationScan(),retryColocation(). UseStudioColocationIndicatororuseStudioColocation()for custom UI. - Joiners that connect before the host has placed the scene report
waiting_for_host.connectTimeoutMs(default 60 s) fails a room that never comes up withCONNECT_TIMEOUT/HOST_TIMEOUT. - Works with an API key or a Studio session (
rvSetStudioSessionalso reaches cloud anchors and the co-location channel). A Quest host shares a Meta spatial anchor instead of scanning. - Rooms stay same-family (phone↔phone, Quest↔Quest). Web cannot host or join (
FRAME_KIND_UNSUPPORTED).
See Co-Location and StudioSceneNavigator.
Fixed on the web
- Renderer memory grows to 2 GB (was fixed at 256 MB); glTF loads no longer copy the model.
StudioSceneNavigatortakesonAssetError(asset, error)andonRendererAbort(also showsrenderErrorin the canvas's place). Studio scenes mount once.- Taps are no longer mirrored vertically. Transparent image borders no longer hide what is behind them.
- Web AR holds its last pose through a dropout and smooths it.
arOptionsacceptsfeedWidth,feedHeight, andposeSmoothing. - Denied motion permission is reported through
onMotionUnavailableonViroARSceneNavigatorandStudioSceneNavigator.
Native
- Meta Quest: gaze on every headset, screen capture (
takeScreenshot/startVideoRecording/stopVideoRecording— left eye, not passthrough;RECORD_ERROR_NOT_READYuntil rendering), AR hit test from JS (performARHitTestWithRay/WithWorldPoints), click haptics, left-palm menu pinch. Hit tests, screenshots and recordings no longer crash or come out black; laser follows drag; drag ends if the node leaves the scene. - Remounting a navigator works on every platform (physics teardown, iOS text, Android first frame).
- iOS / RN 0.86: native module calls wait for view mount;
ViroCamera/useViroMapCamerawork; conditional child unmount and gesture-during-AR-teardown crash fixes. cancelCloudAnchorOperations()now cancels ReactVision hosts, resolves and scans (ErrorCancelled). It used to be a no-op.- Renderer binaries rebuilt on virocore 3.0.2 and Spatial 1.3.0; scan-host floor raised to 300 points.