The Innoactive Spatial Runtime can stream a Unity build to Apple Vision Pro the same way it streams Unreal or VRED — your existing desktop Unity project runs unchanged on the workstation, and the rendered XR view is delivered to the headset over CloudXR.
You don't need to port your project to PolySpatial. PolySpatial targets visionOS native; streaming preserves your desktop pipeline (custom shaders, post-processing, render features) and just lets Vision Pro consume the result.
Prerequisites
- Windows workstation with an NVIDIA RTX GPU.
- A Unity project that builds as a Windows standalone with XR support enabled.
- The Innoactive Unity plugin dropped into your project's
Assets/. It exposes the streaming hooks, multi-user APIs, and Vision Pro input mapping. - Innoactive Spatial Runtime installed.
- Apple Vision Pro on the same local subnet.
Enable streaming
- Add the Innoactive Unity plugin to your project. Confirm the streaming and input components appear in the plugin's setup window.
- Build a Windows standalone (Player). The Editor's Play mode doesn't broadcast to the runtime.
- In the Spatial Runtime tray app, add a manual application entry of type Unity pointing at your built
.exe. - Open Innoactive Spatial on Apple Vision Pro and select the workstation, then the Unity application.
- Multi-user sessions sync scene state and anchored content via the plugin's hooks — custom scene modifications must go through those hooks to replicate.
What's supported
- Desktop-grade rendering — your existing shaders, post-process volumes, and render features run unchanged.
- Hand tracking and gesture input mapped by the plugin.
- Multi-user co-located and remote sessions.
- Through Innoactive Portal, the same Unity build can also stream to Meta Quest, Pico, and PC-VR headsets.
Limitations and gotchas
- The Unity integration is less mature than VRED and Unreal. Lock your Unity LTS version against the plugin version you start production on, and watch the Spatial release notes before upgrading either.
- The Editor's Play mode is not a streaming endpoint — you must build a standalone player.
- Scene state changes that bypass the plugin's hooks (direct scripting, in-engine networking) won't replicate to remote peers.
- Don't ship a PolySpatial build alongside the streamed build to the same audience; the two are different distribution paths and confuse end users.