Skip to content

Add adaptive XR quality control - #3

Merged
reality2-roycdavies merged 1 commit into
mainfrom
agent/adaptive-xr-quality
Jul 24, 2026
Merged

reality2-roycdavies merged 1 commit into
mainfrom
agent/adaptive-xr-quality

Conversation

@reality2-roycdavies

Copy link
Copy Markdown
Owner

What changed

  • replace movement-only viewport scaling with a testable adaptive XR quality controller
  • preserve the existing 0.65 walking and 0.55 sprinting profiles
  • detect headset rotation and use a 0.78 motion profile while turning in place
  • lower scale only after repeated missed frames and recover slowly after a stable delay
  • honour runtime-recommended WebXR viewport scale values when available
  • avoid repeated viewport requests for insignificant scale changes

Why

The previous controller treated a stationary player as fully static even during rapid head turns and did not react to sustained missed frames. That can apply maximum resolution during the most latency-sensitive motion while leaving no feedback mechanism for unexpectedly expensive scenes.

User impact

Static scenes retain full resolution. Locomotion retains the already-tested quality profiles. Head turning and sustained frame misses now receive temporary performance headroom, with hysteresis intended to prevent visible quality pumping.

Validation

  • npm test: 210 tests passed, including 7 adaptive-controller tests
  • modified JavaScript passes node --check
  • git diff --check passes
  • the browser resolved and parsed the complete v17 module graph before the container-level WebGL2 restriction

@reality2-roycdavies
reality2-roycdavies marked this pull request as ready for review July 24, 2026 00:23
@reality2-roycdavies
reality2-roycdavies merged commit f8eb9e2 into main Jul 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant