ProjekteSpiele & SimulationVorschau

QLink

Custom game and simulation engine for Linux, written in Rust. Runs on Linux without the Meta Quest Link PC app: the simulation is shown directly as the Link home on Quest 3 over USB, while the same world runs in 2D on the PC desktop. Planned to fully replace the Link app, so Steam and other VR games can be launched through it. Very early development version; renders are updated regularly. Test versions by invitation.

2
Sterne
0
Forks
Okt. 2026
Erstellt
vor 5 Tagen
Letzter Push

Readme

Dieses Readme enthält 18 Bilder von GitHub. Sie laden erst nach einem Klick unten.

QLink - Game and Simulation Engine — Linux PCVR for Quest 3 (project preview)


Videos

Race Track Test & Soft-Body Damage Bullet Penetration & Dynamic Surface Early Build: Shoothouse Run
Race Track Bullet Penetration Shoothouse

qlink is an independent research project that brings wired PC VR to Linux for the Meta Quest 3. The PC renders the whole VR world, including the home, the avatar and its body IK, the applications and the final frames. It streams the result over the USB cable to the stock Quest Link receiver. Nothing is installed on the headset, and no custom Quest app is involved.

  • No Quest Link PC app. qlink runs on Linux without Meta's Quest Link (Oculus) PC software. The Linux host talks to the stock Link receiver on the headset directly.
  • The PC world is the Link home. The headset shows a PC-rendered world in place of the usual Link home. The desktop can play the same world in 2D. A new shared simulation is being integrated; the headset path has not switched to it yet.
  • Goal: replace the Link app completely. A future OpenXR runtime is meant to let Steam and other VR games start through qlink, and return to the home afterwards (see the roadmap). This is planned, not available yet.

This repository is a public preview. It shows progress through renders, videos and short write-ups. The source code, internal research notes and protocol documentation are not published here.

Status: experimental research, not a product. It has been tested on one Quest 3 with one PC (RTX 3080, Linux). Not affiliated with or endorsed by Meta.

Important

Very early development version. qlink is under active development. Work is focused on making the full path run reliably and on improving it step by step. Many parts are incomplete, and things change quickly.

Renders are updated regularly, so this repository shows how the project progresses over time. See the progress log.

Test versions and contributors: there are no public builds yet. Later, test versions and collaboration will be offered by invitation. If you are interested, open a tester interest or offer to help issue.

Ideas and feedback are welcome through issues and Discussions. See CONTRIBUTING.md.

Island home world

Highlights

  • Native USB streaming to the stock Link receiver. On one Quest 3, the Linux host completed the session handshake and started the stock Link runtime. It streamed a PC-rendered world as 4128 × 2208 side-by-side HEVC at 72 Hz while receiving head, controller and optical-hand tracking. One bounded run displayed frames for 120 s.
  • The PC does all the rendering. Vulkan is the current default and draws at full headset resolution with in-process HEVC encoding; its current headset appearance and cadence still need a live repeat. A multithreaded CPU renderer remains available as fallback.
  • Own engine and worlds. Built-in worlds include an island with shallow-water surf, an underwater reef, weather and grass and palms you can touch. There is also a race circuit with a drivable car and a shooting range with a two-storey, six-room training house.
  • Full-body avatars. Anatomical characters with 49 joints, all ten fingers animated, faces with expressions, clothing layers, and IK driven by head and hand tracking.
  • Player health simulation. Projectile paths are traced through body regions and internal organs. Fractures, bleeding, breathing, consciousness, movement, weapon grip and death all follow from the hits.
  • Physical simulation. Firearm mechanics, material damage (bullet holes, shoot-through walls, breaking timber, ricochets and fragments), vehicle dynamics and crash deformation, shallow-water surf, foliage contact and ragdolls.
  • Tooling. A desktop console and world editor, a character studio, plus Animation Lab, Sound Lab, Crash Lab and a scripted clip maker.

Simulation and multiplayer progress

The project now has a fixed-tick Rust simulation with an entity component system, rigid-body physics and shared rules for players, NPCs, items, weapons, injuries and vehicles. The desktop console enables the new simulation path by default. Its shooting-range integration is still being completed: some course and player state remains in the older home code. The native headset session still uses that older path. Simulation details and the architecture show the current split.

A server-authoritative game network can replicate VR and desktop player inputs and simulation state. It has passed synthetic packet-loss tests and local UDP loopback tests. There has been no validated live multiplayer session between PCs or with a headset. Secure connections, interest management and a persistent shared world are future work. The game network is separate from the Quest Link USB connection.

Already in the PC game

These features run in the PC build or have passed offline PC tests and render reviews. Their appearance and controls in the current headset build still need separate validation.

  • Places to explore: a generated island with beach, surf, underwater reef, swimming, rain, clouds, grass and touch-reactive plants; a race circuit; and a shooting range with targets, a shooting house and a two-storey, six-room training house.
  • Training-house encounters: shuffled hostage and armed-suspect scenarios, backup gunmen, cover-aware return fire, wound reactions, dropped weapons, room progression and a saved score. The house has stairs, furnished rooms and a fire-escape route.
  • Weapons and interaction: a P9 pistol and M4-style carbine with magazines and fire controls; loose cartridges, pickup and inventory; a P9 flashlight and red-dot sight; muzzle light, recoil and shot view shake. A desktop player can use bandages to stop bleeding in a reachable body region.
  • Physical consequences: material-dependent bullet marks, shoot-through plywood, falling timber, ricochets and fragments; organ injuries, bleeding, fractures and visible wounds; car crashes that bend panels and damage tyres; sliding tyre marks.
  • Players and presentation: full-body IK, animated fingers, facial expressions, clothing with protection and wet or damaged appearance, held-weapon animation, sun shadows and PC-side footsteps and weapon/vehicle sounds.
  • PC tools: the desktop console and world editor, a categorized Asset Viewer, Character Studio, Animation Lab, Weapon Lab, Sound Lab, Cloth Lab, Crash Lab and scripted scene export.

The feature inventory separates offline, live and planned status for each area.

Gallery

All images below come from the project's Vulkan GPU renderer (RTX 3080). They are unedited offline renders, not concept art. They show the state when captured; later world materials and the training house have changed. These images do not demonstrate the current headset or multiplayer path.

Island world

Island overview Palms and grass
Overview with simulated surf Palms, plants and grass that react to touch
Beach Shallow water
Beach and wet sand Refracting shallow water, foam and run-up

Ocean video: surf and water motion over 4 s · beach view

Characters

Character views

Face GPU-skinned crowd
Anatomical face with eyes, teeth and expression rig Eight full-detail bodies skinned on the GPU in one frame

Animation

Clip Video
Pistol reload: magazine change and slide rack pistol-reload.mp4
Pistol draw and aim, full body pistol-draw-aim.mp4
Walk cycle with foot locking walk-cycle.mp4

Clips are rig-independent .qlanim files. They are edited in Animation Lab and can be recorded from the wearer's PC-solved pose in VR.

Shooting range and race circuit

Range lane Range counter
Range lanes with distance boards and targets Shooting counter with pistol and magazines
Shoothouse Earlier SWAT course
Shoothouse Earlier four-room course, since replaced by a two-storey training house
Race start line Race hillcrest
Race circuit start line Circuit hillcrest with the drivable car

Scripted scene

Scripted range clip (MP4, 5 s): a staged scene made with the clip maker and rendered on the GPU. A scripted shot event drives the health system, which produces the hit reaction and the fall.

Clip frames

This is a scripted demonstration. It is not a headset capture and does not show autonomous NPC behaviour.

Read more

  • Features: what exists today, and how far each part is validated
  • Simulation and health: the shared simulation, multiplayer boundary, health, damage, vehicles, water and physics
  • Architecture: how the pieces fit together at a high level
  • Progress log: development timeline
  • Roadmap: where the project is heading

Principles

  • Clean-room. Behaviour is observed and documented independently. No proprietary runtime code, drivers, SDK headers or assets are copied or redistributed.
  • No circumvention. No bypassing of authentication, entitlement, DRM or encryption, and no collection of credentials or account data.
  • Evidence first. A capability is claimed only after a dated test under stated conditions. Offline and synthetic results are labelled as such.

Preview updated 2026-10-09.

Roadmap

docs/ROADMAP.md

Roadmap

These are planning estimates, not commitments. They assume one developer working part time.

Milestone Goal Target (likely) State
M0 Native feasibility: handshake, tracking, video in headset 2026-09-26 Done on one Quest 3
M1 Stable session, reconnect and sleep recovery 2026-10 In progress
M2 Complete controller and hand input 2026-10 Partial
M3 Full-resolution GPU rendering and encoding in the headset 2026-11 Partial (offline)
M4 Long-running host service 2026-12 Groundwork
M5 OpenXR runtime alpha (standard VR apps) 2027-02 Planned
M6 Headset audio and haptics 2027-03 Planned
M7 Launching games, returning to home 2027-04 Planned
M8 Performance benchmark on documented hardware 2027-05 Planned
M9 Packaging and public beta ~2027-06 Planned

In parallel, the world track is moving gameplay from the older home code into one shared simulation. The desktop console enables the new path by default; the native headset path still uses the older one. The multiplayer codec and server pass synthetic and loopback checks, while live crossplay remains open.

gantt
    title qlink roadmap (likely case)
    dateFormat YYYY-MM-DD
    axisFormat %Y-%m
    section Runtime
    M1 Stable session        :m1, 2026-09-28, 3w
    M3 GPU render + encode   :m3, after m1, 5w
    M4 Host service          :m4, 2026-11-09, 4w
    M5 OpenXR alpha          :m5, after m4, 10w
    M6 Audio and haptics     :m6, 2027-02-15, 6w
    M7 Game compatibility    :m7, after m5, 6w
    M8 Benchmark             :m8, after m7, 4w
    M9 Public beta           :m9, after m8, 6w
Loading

Vision: a complete simulated world

The runtime milestones above make the headset path reliable. The long-term goal goes further: one connected, fully simulated world that people enter from VR or from a normal PC desktop, alone or together.

  • One world, two ways in. The same simulation runs in VR on the headset and in 2D on the desktop. VR and desktop players share the same places, bodies, physics and health system.
  • Your own space as the entrance. You start in a personal home with your own avatar. From there, portals lead to worlds, activities and, once the OpenXR runtime exists, to Steam and other VR games. You return to the same home afterwards.
  • A connected landscape and authored places. A future contiguous map may stream persistent regions and player constructions. Existing islands, ranges and race circuits are separate authored scenes today; they are not adjacent map regions.
  • Multiplayer. The same server-side simulation owns shared physics, hits and injuries. Synthetic replication and local UDP loopback work; an integrated live VR/desktop session, secure access and interest management remain to be built.
  • Simulation all the way down. Bodies with organs and injuries, materials that break, vehicles that deform, water, weather and foliage. Everything players interact with nearby is simulated, not faked.
  • Creators. Later, tools let people compose approved assets into their own places and share them deliberately.

World stages

These stages follow the runtime milestones. Unlike the milestones, they have no dates yet.

Stage Outcome State
W0 PC-rendered home in the stock Link receiver and a desktop view of the world Working experimentally on one headset; desktop offline
W1 Full cutover: one simulation owns people, weapons, wounds, vehicles and course rules In progress; desktop flag path active, headset path unchanged
W2 VR and desktop clients join one authoritative game session Replication tested synthetically and on local UDP loopback; integrated live session open
W3 Secure, bounded multiplayer with connection recovery and interest management Planned
W4 Persistent contiguous regions, chunk streaming and shared construction Design only
W5 Portal library and versioned place/content packages Planned; standard app launch needs M5 and M7
W6 Creator ecosystem with attribution, permissions and content review Vision

Ground rules for the shared world

  • Privacy first. Share only the minimum pose and action state a room needs. Raw headset diagnostics and device identifiers never leave the PC by default.
  • Safety before public rooms. Muting, blocking, personal space, comfort options and return-to-home exist before any room opens to the public.
  • Measured scale. Region size, active entities and player counts come from load tests, not from promises. Only nearby chunks and entities can remain active.
  • Offline still works. The personal home and solo play never depend on an online service.

Ganze Datei auf GitHub

Funktionen

docs/FEATURES.md

Features

State as of 2026-10-09. Each row says how far the feature is validated:

  • Live (1 device): observed working on one Quest 3 in a bounded session.
  • Offline: passes automated PC tests and, for visual features, inspected PC renders; current headset behavior remains unconfirmed.
  • Planned: not implemented yet.

Streaming and runtime

Feature State
USB connection to the stock Quest Link receiver (no headset app) Live (1 device)
Session handshake and stock Link runtime start Live (1 device)
HEVC video, 4128 × 2208 side by side at 72 Hz Live (1 device); one run of 120 s
Head tracking Live (1 device)
Controllers (pose, trigger, face buttons) Partly live; stick and grip mapping offline only
Optical hand tracking (joints, pinch, grip) Live transport; interaction feel not yet confirmed
Full-resolution Vulkan renderer with in-process HEVC encoding Offline (decodable stream, no headset run yet)
Vulkan as the default renderer, CPU as selectable fallback Implemented; current default needs a follow-up headset run
Disconnect, reconnect and sleep recovery Partial; one cable reconnect observed
Headset audio and haptics Planned
OpenXR runtime for standard VR apps Planned

Worlds

Feature State
Island: terrain generated from a seed, sand-to-grass blending, photographic CC0 ground textures Offline
Island beach, wet sand and surf that shoals, breaks, foams and runs up the shore Offline
Underwater reef, kelp, fish, swimming and diving Offline
Weather: cloud layers, storm cycle, rain and wet ground Offline
Palms, plants and grass that bend under hands and bodies Offline
Race circuit with a drivable car, opening doors and tyre marks Offline
Shooting range with distance targets, moving targets, pickup supplies and shoot-through props Offline
Two-storey, six-room training house with furnished rooms, stairs and fire escape Offline
Shuffled hostage and armed-suspect encounters, backup gunmen and saved score Offline
Armed figures return fire around cover, reload, react to hits and drop weapons Offline
Sun shadows from the player, props and vehicles Offline
Range and race ground materials, window sun patches and flashlight-lit rooms Offline PC render reviews; headset review open

Characters

Feature State
Anatomical avatar, 49 joints, all ten fingers animated Offline
Full-body IK from head and hand tracking Live input; appearance still under review
Faces: blinks, gaze, expressions, hit reactions Offline
Clothing layers with wet and damage appearance Offline (early proxies)
Garment protection that reduces projectile energy and weakens after hits Offline
Wound reactions, reachable wound pressure and guarding of unreachable wounds Offline
First aid with carried bandages for a reachable bleeding body region Offline desktop path; no VR bandage action or mesh
Character studio: any mesh or object can become a character Offline
Animation clips, Animation Lab editor, VR motion recording Offline (VR recording path tested synthetically)
Full-detail GPU-skinned crowds and injured bodies Offline render and performance reviews

Simulation

Feature State
Fixed-tick entity simulation with players, NPCs, items and rigid bodies Offline; deterministic replay and scale tests
Range migration from the older home code into the shared simulation Partial; desktop enables it by default, headset still uses the older path
Server-authoritative replication for VR and desktop player inputs Synthetic packet-loss and local UDP loopback tests only
Live VR/desktop multiplayer between machines Planned; no validated session
Secure multiplayer connection and proximity-based updates Planned
Persistent contiguous world with shared construction Planned
P9 pistol: slide, magazines, loose cartridges, pickup, recoil and ejected cases Offline; some controller actions observed, current headset repeat open
M4-style carbine: 30-round magazines, safe/semi/auto selector and authored mounts Offline; live VR handling open
P9 red-dot sight and flashlight with mount and light controls Offline PC render and interaction tests
Material damage: bullet holes, shoot-through walls, breaking timber, ricochets, fragments Offline
Player health: traced organ hits, fractures, bleeding, breathing, consciousness, grip, death Offline
Injury rendering on CPU and GPU: entry/exit wounds, blood on skin and clothing, ragdolls Offline
Car driving, seats, opening doors, tyre marks and crash deformation Offline PC path
Crushed or punctured tyres and bent rims affect rolling Offline
PC sound: engine, tyres, wind, footsteps, shots and handling Offline playback and Sound Lab reviews; headset audio open

See Simulation and health for details.

Tools

Tool Purpose
Desktop console Joins the same world as the headset, provides desktop players and debug views
World editor Places objects, sculpts surfaces, saves worlds as editable JSON
Character studio Builds and inspects characters and outfits
Animation Lab Edits, cleans up and records animation clips
Sound Lab Catalogues, renders and reviews every generated sound
Crash Lab Sweeps crash speeds, angles and obstacles for vehicle damage
Clip maker Renders scripted scenes to MP4 from a JSON timeline
Asset Viewer Browses people, worlds, weapons, accessories, clothing, props and vehicles from the content catalogs
Weapon Lab Reviews authored weapons, grips and handling clips
Cloth Lab Reviews garment layers and fit

Ganze Datei auf GitHub