Distributed Path-Traced VR
A distributed rendering system that streamed remotely rendered VR frames to a standalone headset.
C++ · Vulkan · OpenXR · Monado · HEVC

Overview
Developed at Tampere University, this project moved stereo path tracing from a standalone VR headset to a remote Linux GPU server while keeping tracking, decoding, and presentation on the headset.
Head pose was transported to an OpenXR/Monado rendering server, while rendered frames were hardware-encoded with HEVC and streamed back over UDP.
Highlights
- Vulkan and OpenXR server-side rendering with headless Monado integration
- NVENC HEVC hardware encoding
- UDP pose and video transport
- Android hardware decoding and OpenGL presentation
- Up to 60 FPS for complex scenes at 1024 × 1024 per eye and 90 FPS for simpler scenes
Architecture
Pose uplink
- Headsetposition + rotation
- UDPdedicated pose port
- Monadosimulated device
- Vulkan serverstereo path tracing
Frame downlink
- Vulkan serverstereo frames
- NVENC / HEVChardware encode
- UDPWi-Fi 6 network
- MediaCodechardware decode
- HeadsetOpenGL display
Performance
Measured with two NVIDIA RTX A6000 GPUs and an HTC Vive Focus 3 over Wi-Fi 6.
| Measured stage | Time |
|---|---|
| Server rendering at 60 FPS | 16 ms |
| Composition and encoding | 10 ms |
| Network transmission | at least 30 ms |
| Client decoding and rendering | 11 ms |
| Measured minimum | at least 67 ms |
This lower bound excludes sensor acquisition and headset display delay. Network transmission was the largest and most variable cost.
Architecture
The logical data path and the physical test setup.
