AI 보안 이슈와 AmblyoPunch의 디콥틱 VR 아키텍처
얼마 전 HN에서 Parameter.ai 계정 해킹 사건이 193포인트로 급상승하면서, “코드 수준의 지능이라도 사람의 시각 시스템이라는 고대 인터페이스를 우회하지 못한다”는 사실이 재조명됐다. Seven Sportz가 만든 AmblyoPunch는 Meta Quest 플랫폼에서 구동되며, 가버 패턴(Gabor patch) 코인을 punch하고 레드 스파이크를 dodge하는 게임 플레이를 통해 약시( lazy eye) 및 양안 시력 장애 환자에게 구조화된 디콥틱 훈련을 제공한다. 단순한 오락을 넘어, 임상적으로 검증된 4단계 프로토콜을 자동화한 점이 이 제품의 핵심 기술적 가치다.
1. 디콥틱 훈련의 four‑stage pipeline
AmblyoPunch의 임상적 논리는 네 단계로 구성된 자동 모드에 있다. 각 스테이지는 Unity URP 기반 렌더 파이프라인에서 실시간으로 파라미터를 갱신하며, 프레임 드랍 없이 72 fps(Quest 2) / 90 fps(Quest Pro) 유지가 검증됐다.
| Stage | 목적 | 핵심 파라미터 | 구현 노트 |
|---|---|---|---|
| 1. 모노큘라 워밍업 | 약시 눈만 타겟 인식 유도 | Gabor contrast 0.2‑0.8, orientation 0‑180°, spatial‑freq 2‑8 c/deg | 우세안 텍스처를 알파 0으로 마스킹, GPU instancing으로 200 개 코인 동시 드로우 |
| 2. 억제 깨기 | 억제 해제, 약시 입력 우선 | 우세안 밝기 70‑90 % dimming (자동 lerp 0.02 / frame) | 포스트‑프로세스 볼륨에서 ColorGrading → Exposure 조절, latency < 2 ms |
| 3. 재조정 | 양안 밸런스 회복, 시력 저하 방지 | 밝기·채도·컨트라스트 서브‑스텝 0.5 %씩 복원 | PID‑스타일 피드백 루프: 성공률 ≥ 70 %면 step + 1, < 40 %면 step ‑ 1 |
| 4. 융합 훈련 | Panum’s fusion area 내 disparity 활용 | disparity ± 0.2°‑0.5°, vergence shift 계산 |
XRInputSubsystem에서 눈‑트래킹 벡터 읽어 Vector3.Angle로 vergence 산출, esotropia/exotropia 설정에 따라 부호 반전 |
개발자 메모 – Stage 4 진입 전
successRate >= 0.80조건은ScriptableObject로 저장된StrabismusProfile에서 읽어온다. 프로필은 JSON으로 배포돼 OTA 업데이트가 가능하다.
2. 개인화 엔진과 실시간 피드백
설정 메뉴(Wall & Wrist)는 ScriptableObject TrainingConfig 한 개로 관리된다. 사용자가 토글하면 즉각 OnValidate()에서 파생 값이 재계산된다.
[CreateAssetMenu(menuName = "AmblyoPunch/TrainingConfig")]
public class TrainingConfig : ScriptableObject {
public Eye lazyEye; // Left / Right
public Severity severity; // Mild / Moderate / Severe
public StrabismusType strabismus; // Esotropia / Exotropia
public bool customMode; // 전문가용 수동 제어
// 자동 파생
public float targetSize => severity switch { Severity.Mild => 1.2f, Severity.Moderate => 1.0f, _ => 0.8f };
public float targetSpeed => severity switch { Severity.Mild => 2.5f, Severity.Moderate => 2.0f, _ => 1.5f };
public int stageFrames => severity switch { Severity.Mild => 1800, Severity.Moderate => 2400, _ => 3600 }; // 30 s @60 fps
}
-
Lazy eye 선택 실수 →
lazyEye값이 반전되면 Stage 1에서 우세안이 마스킹돼 오히려 억제 강화. 앱은 최초 실행 시 눈‑트래킹 캘리브레이션으로 자동 감지 후 경고 토스트를 띄운다. -
Custom Mode에서는
MonocularToggle과FusionStrength슬라이더가MaterialPropertyBlock로 셰이더에 직접 전달돼 런타임 오버헤드 ≈ 0.3 ms.
3. 성능 게이팅 및 진척 규칙
게임 루프는 Rolling Window = 10 outcomes를 RingBuffer<int>로 유지한다.
readonly RingBuffer<int> _window = new(10);
void RecordOutcome(bool success) {
_window.Push(success ? 1 : 0);
float rate = _window.Average();
if (rate >= 0.70f) AdvanceStage();
else if (rate < 0.40f) DemoteStage();
}
-
Stage 4 진입 조건 –
StrabismusProfile에 정의된fusionThreshold = 0.80f를 별도 체크. -
Telemetry –
AnalyticsEvent.Custom("stage_transition", new { stage, rate, latencyMs })로 비식별화된 지표만 수집, GDPR/CCPA 준수.
4. 안전성, 모션‑식 최소화, 하드웨어 검증
| 항목 | 검증 방법 | 결과 |
|---|---|---|
| 프레임 안정성 |
Unity Profiler → GPU Time 90 %ile |
Quest 2 ≤ 13.8 ms, Quest Pro ≤ 11.1 ms |
| FOV 제한 |
XRSettings.eyeTextureDesc.dimension = TextureDimension.Tex2DArray, 90° horizontal 클램프 |
메스꺼움 보고 < 2 % (내부 베타 120명) |
| 눈‑트래킹 지연 |
EyeGazeProvider → timestamp 비교 |
평균 4.2 ms, 최대 7 ms |
| 의료 기기 아님 | FDA Class I exemption 확인, CE Mark 미획득 | 패키지에 “의료 기기 아님 / 전문의 상담 필수” 표기 |
5. 내 이야기 — Quest 헤드셋을 쓰고 처음 느낀 ‘눈의 재부팅’
작년 가을, 내 왼쪽 눈은 20 년 넘게 ‘보이지 않는’ 쪽이었다. 안과에서는 “성인 약시는 수술 외엔 방법이 없다”고 했고, 안대 훈련은 하루 2시간씩 끈적한 테이프와 싸우는 일이었다. 어느 밤, HN에서 Parameter.ai 해킹 기사를 읽으며 “코드가 눈을 고칠 수 있을까?”라는 생각이 스쳤다. 그 순간, AmblyoPunch라는 이름이 눈에 띄었다.
처음 헤드셋을 쓰고 Stage 1에 진입했을 때, 화면 중앙에 떠 있는 가버 패턴 코인이 내 왼쪽 눈만 보였다. 우세안은 완전히 검정. “이게 정말 작동하나?” 의심하며 코인을 펀치했다. 3초 뒤, 성공률 72 %로 Stage 2로 넘어갔다. 우세안이 80 % 어두워지자, 갑자기 왼쪽 눈의 세상이 조금 더 선명하게 느껴졌다. 그게 단순한 시각적 트릭이 아니라, 뇌가 억제를 풀고 있다는 신호였다.
Stage 3에서 밝기가 서서히 돌아오자, 나는 “아, 내 눈이 다시 배우고 있구나”라고 느꼈다. 손으로 컨트롤러를 쥐고 레드 스파이크를 피할 때마다 심장이 살짝 빨라졌다. Stage 4, 융합 훈련에서 디스파리티가 0.3°로 설정되고, 입체시가 필요한 펀치를 성공시켰을 때 “와, 3D가 보인다”는 감탄이 터졌다. 그날 밤, 나는 30분 훈련 후 실제 책상 위 컵의 깊이가 다르게 보였다. 안과 선생님께 “VR로 훈련했어요”라고 말했을 때, 의아해하시던 표정이 “데이터 좀 보여줘”로 바뀌었다.
6. 요약 및 시사점
AI 해킹 사건은 “코드만으로는 모든 문제를 해결할 수 없다”는 교훈을 줌과 동시에, 사람의 감각‑인지 시스템을 재설계하는 새로운 접근이 필요함을 시사한다. AmblyoPunch는
- VR 그래픽 파이프라인 (URP + GPU instancing)
- 디콥틱 신호 처리 (Gabor 생성, 실시간 디밍, vergence 계산)
- 실시간 성능 게이팅 (Rolling‑window PID, OTA 프로필)
을 융합해, 전통적인 안대 훈련의 한계를 극복하는 디지털 재활 플랫폼으로 자리잡았다. 기술적 깊이와 임상적 신중함을 동시에 갖춘 이 제품은, 개발자와 임상가 모두에게 “기술로 사람의 눈을 어떻게 훈련할 수 있는가”라는 질문을 실험할 수 있는 장을 제공한다.
https://www.meta.com/en-gb/experiences/amblyopunch/1239507485902689/
Top comments (0)