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 from the thesis
The logical data path and the physical test setup.

