# iPhone 대형 SOG 해독 대조 시험

2026-10-02. iPhone 11(iPhone12,1), iOS 27.0.1(24A446), Safari에서 Three.js/Spark 2.2.0 + BVH를 순차 실행했다. 릴리스는 `local-4d5905679d2e-882e63d01db8`이다. 승인된 프로젝트 탭에 Playwright MCP와 USB CDP bridge로 연결했다.

## 결과

시간은 페이지 시작 기준이다. LAN HTTP 릴레이와 worker 메시지 계측을 사용한 기능 진단이며, 엔진 성능 순위에 사용하지 않는다.

| 자산 | 점 수 / SH | 다운로드 완료 | 해독 결과 | 앱 준비 |
| --- | --- | --- | --- | --- |
| Sunnyvale 원본, 58.07 MB | 3,999,361 / SH3 | 2.250초 | 73.030초까지 없음 | 관찰되지 않음 |
| Sunnyvale SH 제거, 48.58 MB | 3,999,361 / SH0 | 1.985초 | 43.412초 | 47.320초 |
| Sunnyvale 축소·재인코딩, 11.24 MB | 900,000 / SH0 | 0.643초 | 11.798초 | 48.501초 관찰에서 준비 확인; 정확한 준비 시각은 미수집 |
| 기존 Knock Hall, 11.54 MB | 900,000 / SH0 | 0.727초 | 10.871초 | 10.943초 |

SH 제거본은 원본과 점 수 및 기본 WebP 바이트가 같다. 고차 SH 메타데이터와 그 파일만 제거했다. 축소본은 점을 줄이고 재인코딩했으므로 점 수만 달라진 대조군으로 해석하지 않는다.

원본은 후속 관찰에서 `performance.timeOrigin`이 변경됐다. 두 관찰 사이에 자동화가 탐색을 요청하지는 않았지만, WebKit 재시작·수동 재시도·메모리 종료 중 무엇인지 확인되지 않았다. 90초 제한의 오류 화면도 이 시험에서는 관찰되지 않았다.

준비에 성공한 두 대조군과 Knock Hall에도 일반적인 `Script error.`가 기록됐다. 이 문구만으로 해독 실패를 판정할 수 없다. 400만 점 SH0 성공 시 앱 진단 오류는 없었고 렌더 프레임 기록도 증가했다. 실제 손가락 조작과 이 장면의 장시간 안정성은 이번 시험 범위가 아니다.

## 판단과 다음 작업

- **관찰:** SH를 제거하면 동일한 400만 점을 준비할 수 있었다. 단순히 점 수가 400만 개라서 불가능하다는 설명은 맞지 않는다.
- **추론:** 원본의 고차 SH 해독·할당 또는 관련 부담이 실패와 연관됐을 가능성이 있다. 특정 SDK 결함이나 메모리 부족을 확정할 근거는 없다. CPU·GPU 메모리는 측정하지 않았다.
- **개발 제약:** 성공한 전체 장면도 첫 준비에 약 47초가 필요했다. 전체 파일 하나를 시작 시 해독하는 방식은 개선이 필요하다. 공간 분할 시험에서는 전송량 외에 동시 해독 수와 상주 자산 예산을 확인한다.
- **품질 제약:** SH0는 방향에 따른 색 표현을 줄인다. 진단 자산을 원본의 동등한 대체품으로 채택하지 않는다. 장면 분할의 기본 비교에는 동일 품질을 유지한 자산을 사용하고, 품질 축소는 별도 선택으로 비교한다.

모바일 원본 호환성은 아직 미해결이다. 일반 프레임 비교를 반복하는 대신 현재·과거 충돌 교체, 실제 좌표 분할·선택 로딩 검증으로 진행한다. 분할 성공이 원본 SH3 해독 문제의 해결을 자동으로 뜻하지는 않는다.

## 재현과 근거

- [원본 관찰 JSON](measurements/2026-10-02/ios-decoder-controls.json): 자산 해시·크기, 다운로드/worker 결과/준비 시각, 초기 관찰과 후속 성공을 함께 보존했다.
- [진단 자산 생성](../../scripts/make-sog-diagnostics.py): `python3 scripts/make-sog-diagnostics.py /private/tmp/atlas-sog-diagnostics`.
- [IP 제한 릴레이](measurements/2026-10-02/ios-lan-relay.py): `--diagnostics /private/tmp/atlas-sog-diagnostics`, 승인 탭 URL의 `probe=worker&variant=original|no-sh|900k-no-sh`로 선택한다. production manifest는 변경하지 않는다.

처음 발생한 릴레이 압축 응답 재작성 실패는 앱 결과에서 제외했다. 첫 SH0 시험은 약 10초 뒤 다음 자산으로 이동했으므로 실패가 아닌 불충분한 관찰이다. 900k도 약 10초의 초기 관찰에서는 로딩 중이었지만 같은 페이지의 후속 관찰에서 성공했다. 임시 SOG·설치 환경·캐시와 릴레이·bridge는 기록 저장 후 정리한다.
