Skip to content

Testing Scenarios

TURFPTAx edited this page Jun 7, 2026 · 2 revisions

Testing Scenarios

A quick-reference for validating the VR app against the hardware. The authoritative, always-up-to-date version lives in the code repo at docs/vr-testing-scenarios.md (versioned alongside the app). This wiki page mirrors the highlights and is the place to add your own field notes.

Bring-up order (every session)

  1. Power the FlexGrid, wait for its OLED to show Wi-Fi joined.
  2. Start the server: start-vr.bat (USB) or start-vr-https.bat (cordless HTTPS).
  3. Confirm the device appears in the desktop UI Devices panel with a live heatmap.
  4. Put on the headset, set both controllers down (Quest switches to hand tracking in 2 to 5s).
  5. Open /vr, confirm 3 green preflight checkmarks, Enter VR / Start AR.

2-minute smoke test (headset only, no FlexGrid)

Run this first after any code change.

  1. Preflight: 3 green checkmarks
  2. Enter: scene loads (VR dark / AR passthrough)
  3. Look forward: heatmap + 3x2 menu + status strip
  4. Captured arm up: blue joint spheres
  5. Off hand up: green spheres + blue ray
  6. Ray on a button: amber + highlight
  7. Pinch RECENTER: white flash, panels re-anchor
  8. Pinch-hold a drag handle: handle green, panel follows, release faces you
  9. Tap REC: yellow SYNC slate ~2.5s, menu collapses to STOP, header shows ms clock + quality dot
  10. Tap STOP: full menu returns, "saved" in status

All 10 pass = core loop healthy.

Reading capture quality (while recording)

The recording header doubles as a live data-quality gauge -- judge your capture without removing the headset:

  • Quality dot: gray = warming up · green = match rate >= 70% (good) · amber = 40-70% (marginal) · red = < 40% (poor pairing).
  • NN% = live sensor-to-label match rate.
  • JOINTS DROPPING = your hand is partly out of camera view, so the headset is sending incomplete joint frames (those get zero-filled columns). Keep the capture hand more in view. The total is reported as label_width_mismatch in the stop result.

Feature scenarios (run what you changed)

Scenario What it checks Key expected result
A. Gesture training (VR) SESSION + REC per finger + TRAIN CSV with match rate > 50%, trained: R2=...
B. Field capture (AR) passthrough + screen recorder + sync slate real world visible, slate + header clock legible in the recording
C. Pause / boundary redraw Meta-button or Guardian redraw mid-record "paused" then "resumed -- re-anchoring UI", no glitch, recording closes clean
D. Collapse-to-STOP menu while recording collapses to one red STOP, restores on stop
E. Panel persistence drag, reload, re-enter panels remembered per-mode; RECENTER clears
F. Predict + ghost hand after a TRAIN, PREDICT on amber ghost hand tracks real hand, REAL-vs-PRED bars

Full step-by-step for each is in the in-repo doc.

Acceptance bar

Before demoing or handing to a tester, all of: smoke test passes, A produces match > 50%, B passthrough + sync legible, C recovers from pause, D collapse/restore works, E remembers layout, F ghost tracks.

Field notes

Add your own observations from real test sessions here -- what worked, what was awkward, hardware/OS combinations. (Setup successes go in Successes Log; setup failures and fixes go in Troubleshooting; this section is for app behavior notes during testing.)