Skip to content

refactor: remove Meta Quest and VR support - #42

Merged
voltcrash merged 10 commits into
mainfrom
refactor/remove-vr-support
Oct 3, 2026
Merged

voltcrash merged 10 commits into
mainfrom
refactor/remove-vr-support

Conversation

@voltcrash

Copy link
Copy Markdown
Owner

Exora carried a full Meta Quest VR path: a VR session mode, controller bindings, per-scene camera rigs, an in-headset travel veil, adaptive foveation, a Quest render tier, and a desktop IWER emulator. VR is no longer a target, and all of that sat alongside the phone AR flow that people actually use.

This removes VR and keeps AR (native immersive-ar plus the Variant Launch iPhone handoff). Each step is its own commit:

  • Remove the IWER desktop emulator and its iwer / @iwer/devui dependencies
  • Drop Quest controller input (trigger toggle, primary button, thumbstick movement, hand tracking)
  • Enter only immersive-ar: no VR destination, no ready-vr status, no "Enter VR" label
  • Stop placing a VR camera rig in each scene (focusXrRig, xrCamera)
  • Remove the in-headset travel veil, which AR never showed
  • Present the immersive button as an AR action (enter-ar test id, cube icon)
  • Drop adaptive fixed foveation, which phone AR doesn't expose
  • Remove the quest render tier and its entries in every per-tier budget. Quest browsers now count as mobile
  • Rename the leftover headset wording in tests and helpers
  • Update the README, the iPhone AR guide, and the security notes, and delete the Quest smoke-test checklist

Validation: vp check, vp run -r test, vp run -r build (performance budget passes), and the website's test:browser:desktop and test:browser:full all pass. I haven't tested AR on a real phone.

🤖 Generated with Claude Code

voltcrash and others added 10 commits October 3, 2026 09:00
The IWER emulator only existed to fake a Meta Quest headset in a desktop tab, and VR is being
dropped. Remove the emulator module, its startup hook, the iwer and @iwer/devui dependencies, and
its guide.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The scene host bound Quest controller buttons, thumbstick movement, and hand tracking so a headset
could toggle VR and step onto a planet's surface. None of that applies to phone AR. Remove the
controller bindings, the movement and hand-tracking features, and the planet's controller action.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The immersive control preferred a Meta Quest VR session whenever the device offered one, which
kept a second session mode alive in the integration, the scene host, and the top bar. Only probe
for immersive-ar, drop the VR destination and its status, and track whether an AR session is
active instead of which mode is.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Every destination carried a focusXrRig hook that stood a headset wearer at a fixed spot, and the
planet walked that rig over its surface with the keyboard. AR places the world on a real surface
instead, so remove the rig hooks, their standing positions, and the host's XR camera accessor.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A black sphere faded in around the wearer's head while a VR session travelled between
destinations. AR has no way to travel mid-session, so the veil never shows. Remove the sphere and
its fade from the scene host.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The immersive button still carried an enter-vr test id and a VR headset icon even though it now
only places the world in AR. Rename the test id to enter-ar and draw a cube in place of the
headset.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Fixed foveation is a headset feature; phone AR sessions do not expose it, so the per-tier
foveation budget and the loop that raised it under load only ever ran on a Quest. Remove both and
let the quality sampler skip resolution changes while a session is active.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Quest 2 and Quest 3 each had their own quality profile, and every per-tier budget carried a third
headset entry. With VR gone those devices are ordinary mobile browsers, so drop the quest tier,
its user-agent detection, and its entries in the scatter, mote, lensing, region, and star budgets.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Test stubs still tracked whether the viewer was inside a headset, the readable-text acronyms kept
VR, and the XR status hook still promised VR. Rename the stubs to track an XR session and drop the
VR wording.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The README, the iPhone AR guide, and the security notes still pointed at a Meta Quest checklist
and described walking inside a headset. Remove the Quest smoke test and rewrite those passages
around desktop orbit and phone AR.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
exora Ready Ready Preview Oct 3, 2026 3:38am UTC

@voltcrash
voltcrash merged commit c41be03 into main Oct 3, 2026
3 checks passed
@voltcrash
voltcrash deleted the refactor/remove-vr-support branch October 3, 2026 03:39

This branch was successfully deployed

1 active deployment
Preview — 88857f48 Deployed Oct 3, 2026 by vercel[bot]
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