From 3D Cinema Slump to Dichoptic VR: Building Vision Training That Feels Like a Game
I still remember the night I queued for a 3‑D re‑release, waited 15 years for the format to feel alive again, and walked out disappointed. The glasses were clunky, the depth flat, and the promise of immersion remained a marketing line. That let‑down reminded me why I started tinkering with Quest passthrough shaders: if the hardware can split a frame per eye at 90 Hz, why not give each eye a purposeful, different stimulus?
AmblyoPunch does exactly that. Seven Sportz renders two independent cameras, then drives the lazy eye with high‑contrast Gabor‑patch coins while dimming the dominant view in Stage 2. The engine scales coin size, speed, and spike density based on a severity enum (Mild/Moderate/Severe) and a strabismus flag (eso/exo) that shifts the disparity into Panum’s fusion area for Stage 4. Progression is gated by a rolling 10‑trial window — ≥ 70 % success to advance, ≥ 80 % for fusion‑turn profiles — so the difficulty curve is data‑driven, not arbitrary.
I wired the wrist‑menu config into a tiny JSON schema so clinicians can push a profile without recompiling. The hand‑tracking path reuses the same interaction layer as the controller path, keeping the codebase under 2 k LOC for the core loop. Running it on a Quest 2, frame‑time stays under 11 ms even with the dual‑camera render, leaving headroom for future eye‑tracking hooks.
The result feels less like therapy and more like a boss‑fight you actually want to replay. I’ve watched a colleague’s amblyopic eye gain measurable contrast sensitivity after two weeks of daily sessions, and the logs show the 70 % gate being met consistently. If you’re curious how dichoptic rendering can turn a headset into a vision trainer, give it a spin: https://www.meta.com/en-gb/experiences/amblyopunch/1239507485902689/
Top comments (0)