DEV Community

Cover image for We Took over ChatGPT Accounts
Ashish
Ashish

Posted on

We Took over ChatGPT Accounts

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
}
Enter fullscreen mode Exit fullscreen mode
  • 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();
}
Enter fullscreen mode Exit fullscreen mode
  • 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/

Amblyopia #VisionTherapy #VRHealth #HealthTech #DichopticTraining #GaborPattern #MetaQuest #SevenSportz #AmblyoPunch #시력재활 #약시 #양안시 #VR게임 #헬스테크 #디지털치료제 #의료기기아님 #전문의상담필수 #눈건강 #신경가소성 #게이미피케이션 #디지털헬스 #메디컬VR #헬스게이밍 #웰니스테크 #바이오해킹 #셀프케어 #홈트레이닝 #비전테라피 #아이헬스 #테크포굿 #임팩트테크 #소셜임팩트 #디지털치료 #처방전불필요 #FDA미승인

Top comments (0)