Files
dev/docs/00 INBOX/ai/steamvr-quest-3-design-tree.md
2026-10-21 20:35:37 -04:00

5.1 KiB

date-created, date-modified
date-created date-modified
2026-10-20 17:45 2026-10-20 17:52

SteamVR to Meta Quest 3 design tree

Goal

Stream PCVR from Zeus to a Meta Quest 3.

The design must produce a repeatable and diagnosable SteamVR session.

Observed facts

  • Zeus runs NixOS with a CachyOS kernel.
  • Zeus uses an AMD Radeon RX 9070-series GPU with the amdgpu driver.
  • Zeus runs Hyprland on Wayland.
  • Zeus has Steam and Gamescope configured.
  • SteamVR 2.17.10 is installed.
  • SteamVR includes Valve's Linux vrlink driver.
  • A previous vrlink session detected the Quest 3 and its Touch controllers.
  • That session selected 90 Hz from the Quest's 72, 80, 90, and 120 Hz modes.
  • SteamVR setup lacks cap_sys_nice on vrcompositor-launcher.
  • NixOS can declare host packages, permissions, services, and diagnostics.
  • Steam owns the Quest pairing and SteamVR user settings.
  • Zeus connects by Ethernet at 10.23.50.221.
  • The local Wi-Fi scan finds the Tracion 5 GHz network at 5220 MHz.
  • The scan reports a 1170 Mbit/s link rate.
  • The operator has no external tracked devices.

Decision tree

  • D1: Host platform commitment — Settled: Linux-native on the current NixOS installation.
    • Linux-native on the current NixOS installation.
      • D2: Transport — Blocked by D1
        • Wireless LAN. — Settled: primary transport.
          • D3: Streaming stack — Settled: SteamVR with its built-in VRLink driver.
            • SteamVR with its built-in VRLink driver.
              • D3a: SteamVR acceptance criteria — Settled: reliable session test.
                • Run a SteamVR game for 30 minutes at 90 Hz.
                • Verify visuals, audio, and Touch controllers.
                • Verify one reconnect.
            • ALVR only after SteamVR fails the agreed acceptance criteria.
          • D4: Wi-Fi topology — Settled: keep the current access point.
            • Keep the current access point.
            • Add a dedicated access point.
            • Use a direct Wi-Fi link.
          • D5: Session performance target — Settled: selectable refresh-rate profiles.
            • Selectable refresh-rate profiles.
              • D5a: Default refresh rate — Settled: 90 Hz.
              • D5b: Included refresh rates — Settled: 72, 80, 90, and 120 Hz.
          • D6: Network isolation — Settled: existing trusted LAN.
            • Existing trusted LAN.
            • Dedicated VR VLAN or SSID.
          • D7: Controller and tracking scope — Settled: Quest Touch controllers only.
            • Quest Touch controllers only.
            • Also support external tracked devices.
          • D8: Launch workflow — Settled: automatic service and headset connection.
            • Start SteamVR when Steam Link connects from the Quest.
          • D9: Diagnostics and recovery — Settled: capture health checks and logs.
            • Capture SteamVR logs and health checks.
            • Recover failed sessions manually.
        • USB tether.
          • D10: USB streaming stack — Blocked by D2
            • ALVR over USB.
            • Meta Quest Link through a Windows installation.
          • D11: USB role — Blocked by D2
            • Primary transport.
            • Fallback transport.
        • Both wireless LAN and USB tether.
          • D12: Primary transport — Blocked by D2
          • D13: Fallback behavior — Blocked by D12
      • D14: System integration — Settled: hybrid configuration.
        • NixOS manages system integration.
        • Steam manages Quest pairing and user settings.
    • Dual-boot or replace NixOS with Windows.
      • D15: Windows streaming stack — Blocked by D1
        • Steam Link.
        • Virtual Desktop.
        • Meta Quest Link or Air Link.
        • ALVR.
      • D16: Windows installation scope — Blocked by D1
        • Dedicated VR installation.
        • General-use Windows installation.
      • D2: Transport — Blocked by D1
    • Keep NixOS and add a separate Windows VR host.
      • D17: Host placement — Blocked by D1
      • D15: Windows streaming stack — Blocked by D17
      • D2: Transport — Blocked by D17

Frontier

None.

Settled decisions

  • D1: Host platform commitment — Linux-native on the current NixOS installation.
  • D2: Transport — Wireless LAN as the primary transport.
  • D4: Wi-Fi topology — Keep the current access point.
  • D5: Session performance target — Selectable profiles at 72, 80, 90, and 120 Hz.
  • D5a: Default refresh rate — 90 Hz.
  • D5b: Included refresh rates — 72, 80, 90, and 120 Hz.
  • D6: Network isolation — Existing trusted LAN.
  • D7: Controller and tracking scope — Quest Touch controllers only.
  • D3: Streaming stack — SteamVR with its built-in VRLink driver.
  • D3a: SteamVR acceptance criteria — 30-minute session at 90 Hz, with visuals, audio, Touch controllers, and one reconnect.
  • D8: Launch workflow — Start SteamVR when Steam Link connects from the Quest.
  • D9: Diagnostics and recovery — Capture health checks and logs. Recover failed sessions manually.
  • D14: System integration — NixOS manages system integration. Steam manages Quest pairing and user settings.