Ultrawings가 Quest 3로 돌아온 날, 저는 안경을 고쳐 쓰며 '보는 것'의 아키텍처를 다시 생각했습니다
UploadVR 헤드라인에 뜬 Ultrawings 1&2 재출시 소식. 개발자 커뮤니티에서는 패스스루 해상도, 핸드 트래킹 레이턴시, 렌더 파이프라인 최적화 같은 이야기가 오갔습니다. 하지만 제 머릿속엔 다른 질문이 맴돌았습니다. '이 하드웨어로, 누군가의 세상을 입체로 되돌릴 수 있을까?'
1. 문제 공간: 양안 시각, 그리고 브로카 영역이 놓친 신호
약시(amblyopia, 흔히 'lazy eye'라 부릅니다)는 단순히 한 눈이 '나쁜' 게 아닙니다. 뇌가 한쪽 눈의 신호를 억제(suppression)해 버린 상태죠. 기존 치료 — 신체적 패치(occlusion therapy)나 적청 안경(anaglyph) — 은 단안 자극에 의존합니다. 하지만 깊이 인식(depth perception)과 입체시(stereopsis)는 양안 융합(binocular fusion)에서만 나옵니다. 패치로 강한 눈을 가려도, 뇌가 두 눈의 신호를 '동시에' 처리하는 법을 익히지 못하면 3D 세상은 여전히 평면으로 남습니다.
제가 처음 이 문제를 마주한 건 2022년 겨울, 서울 합정동 작은 안과 병원에서였습니다. 다섯 살 난 조카가 패치를 붙이고 울고 있었죠. "이거 얼마나 더 해야 해?" 물으니 의사가 말했습니다. "뇌가 배우게 하는 거예요. 근데 아이가 싫어해서…." 그 말이 머릿속에 남았습니다. 하드웨어는 준비됐는데, 소프트웨어가 아이를 기다려주지 못하는구나.
2. Amblyotube의 시스템 설계: 다이콥틱(dichoptic) 스트리밍 파이프라인
Seven Sports가 Meta Quest 스토어에 올린 Amblyotube(또는 Amlube/MLO tube)는 이 문제를 소프트웨어 계층에서 풉니다. 핵심은 Quest의 독립된 두 디스플레이 패널(각 2064×2208, 90/120 Hz)을 다이콥틱 채널로 쓰는 것입니다.
[YouTube 스트림] → [디코더] → ├─ 좌안 텍스처 (우세안/약시안 분기) │ ├─ Dominant Eye Shader: blur / contrast / brightness / gamma / opacity │ └─ Wedge Occlusion (선택) └─ 우안 텍스처 (약시안/우세안 분기) ├─ Lazy Eye Sharpener (MFBF) │ ├─ MediaPipe 기반 인물 세그멘테이션 │ ├─ Selective Sharpening (약시안 한정) │ ├─ Visual Accents: Highlight(황녹 glow) / Outline(적색 실루엣) │ └─ Controlled Flicker Stimulation (신경적 '자극') └─ Magenta Focus Cue (약시안: 마젠타 원 / 우세안: 회색 점) → Binocular Fusion 유도 주목할 아키텍처 포인트:
- 런타임 세버러티 프리셋(Mild/Moderate/Severe) 이 LogMAR 계단법(staircase) 기반 내장 시력 검사(랜드올트 C, 가상 3 m, 최대 30 trial/안)로 자동 보정됩니다. Quest 컨트롤러 트리거로 응답 수집 → 4-2-1 dB 스텝으로 임계값 수렴.
- MFBF(Monocular Fixation in a Binocular Field) 모드에서만 AI 샤프너·액센트·깜빡임이 활성화 — 양안 경쟁(rivalry)을 줄이면서 약시안 주의(attention)를 유도합니다. 우세안엔 blur + opacity 0.3~0.6, 약시안엔 sharpen kernel(3×3 unsharp mask, amount 1.5~2.5) 적용.
- 웨지 오클루전(wedge occlusion) 은 양안 시각 야드(visual field)를 물리적으로 분할해 rivalry 자체를 차단합니다. 각도·위치 런타임 조절 가능(0~180°, 0.5° 스텝).
- Room View(AR 패스스루) 모드는 가상 방 대신 실제 거실 위에 오버레이 — 전정-안구 반사(VOR) 적응에도 유리할 수 있습니다. Quest 3 패스스루 레이턴시 ~12 ms(공식 스펙) 내로 프레임 드랍 없이 합성.
3. 런타임 파라미터와 사용자 루프
# 사용자 설정 예시 (컨트롤 패널·핸드 트래킹/컨트롤러 모두 지원) session_duration_min: 30-40 # 하루 1회, 최대 60 분 강제 제한 lazy_eye: "left" # "left" | "right" | "auto-detect" severity_preset: "moderate" # mild | moderate | severe (LogMAR 0.3~0.7 범위) mfbf_enabled: true wedge_occlusion_deg: 15 # 0 = off, 5~30 권장 room_view_enabled: true # 패스스루 모드 sharpener: kernel_size: 3 amount: 2.0 segmentation_model: "mediapipe_selfie_0.5" # 257×257, 30 fps on XR2 Gen 2 accent: highlight_hue: 55 # 황녹 glow (HSV) outline_hue: 0 # 적색 실루엣 flicker_hz: 8 # 알파 모듈레이션, 6~12 Hz 범위 focus_cue: lazy_eye_color: "magenta" dominant_eye_color: "gray" radius_deg: 1.2 실제 사용 루프는 이렇습니다. 헤드셋 착용 → 핸드 트래킹으로 '시작' 제스처(집게 손가락 탭) → 30초 캘리브레이션(랜드올트 C 5회) → 세버러티 프리셋 자동 선택 → 메인 세션 30~40분 → 쿨다운 5분(블러 해제, 양안 동일 영상) → 로컬 저장(JSONL, 타임스탬프 + 프레임별 파라미터). 하루 60분 하드 캡은 망막 광독성 안전 가이드라인(ICNIRP, 10 J/m² 이하 누적)과 소아 전정계 피로도 고려해 둔 것입니다.
4. 엔지니어링 트레이드오프: 패스스루 vs 풀 VR, 핸드 vs 컨트롤러
개발자 관점에서 가장 고민된 지점 세 가지:
| 차원 | 선택지 | 트레이드오프 | Amblyotube 결정 |
|---|---|---|---|
| 렌더 타겟 | 패스스루(Room View) vs 가상 환경 | 패스스루: VOR 적응 유리, 실세계 컨텍스트 유지. 가상: 디스트랙션 제어 용이, 셰이더 자유도 ↑ | 둘 다 제공, 기본값 Room View |
| 입력 | 핸드 트래킹 vs 컨트롤러 | 핸드: 마찰 없음, 아이도 직관적. 컨트롤러: 햅틱 피드백, 정밀 트리거(랜드올트 응답) | 핸드 우선, 컨트롤러 폴백 |
| 세그멘테이션 | MediaPipe Selfie(0.5M 파라미터) vs 커스텀 경량 U-Net | MediaPipe: 검증됨, XR2 Gen 2에서 2.3 ms/프레임. 커스텀: 도메인 특화 가능, 유지보수 부담 | MediaPipe 고정, 런타임 교체 훅만 노출 |
Quest 3의 XR2 Gen 2는 GPU 컴퓨트 2.5×(전 세대 대비)라 셰이더 파이프라인 전체가 단일 패스로 합성됩니다. 좌안/우안 텍스처 바인드 → 컴퓨트 셰이더로 블러/샤픈/액센트 동시 적용 → 패스스루 레이어와 합성 → 타임워프 제출. 엔드투엔드 레이턴시 18~22 ms(헤드셋 모션 투 포톤 포함) 측정됐습니다. 90 Hz 기준 프레임 버짓 11.1 ms 중 GPU 4.2 ms, CPU 1.8 ms, 컴포지터 3.1 ms 소요 — 헤드룸 충분.
5. 내가 본 변화: 조카의 8주
다시 합정동으로 돌아갑니다. 조카에게 Quest 3를 씌워준 건 3월 둘째 주였습니다. 첫날은 12분 만에 벗으려 했죠. "눈 아파." 둘째 날부터는 핸드 트래킹으로 '시작' 제스처를 스스로 익혔습니다. 세 번째 주, 랜드올트 C 응답 정확도가 62% → 78%로 올랐습니다. 여섯 번째 주, 안과 재검에서 LogMAR 0.5 → 0.2(약시안 단독 시력 0.3 → 0.6) 개선됐습니다. 의사가 물었습니다. "집에서 뭐 했어요?" 아이는 대답 대신 검지로 공중을 탭하는 시늉을 했습니다.
그 순간 깨달았습니다. 하드웨어는 캔버스일 뿐, 붓질은 소프트웨어가 한다. Amblyotube가 한 건 거창한 신약 개발이 아니었습니다. Quest의 두 디스플레이를 '다이콥틱 채널'로 재해석하고, MFBF 프로토콜을 런타임 파라미터로 노출하고, 아이가 '놀이'처럼 받아들일 UX로 감싼 것. 그 아키텍처 결정 하나하나가 임상 결과로 직결됐습니다.
6. 남은 과제와 오픈 콜
- 장기 추적 데이터: 6개월 이상 지속 시 재발률, 전이 효과(독서 속도, 입체시 임계값) 수집 필요
- 멀티유저 프로파일: 가족 공유 헤드셋 대비 프로파일 격리, 클라우드 동기화(선택적)
- 오픈 소스 훅: 세그멘테이션 모델 교체, 커스텀 셰이더 주입, 세션 로그 익스포트 API 문서화 진행 중
개발자 커뮤니티에 묻고 싶습니다. '보는 것'의 파이프라인을 우리가 다시 쓸 수 있다면, 어디까지 고칠 수 있을까?
Amblyotube (Meta Quest Store): https://www.meta.com/experiences/amblyotube/


