Index
2026-09-18 — Experiment

Shared-world structure rebuild — 3회 시도 끝에 delivery integrity PASS, 시각 판정 REJECTED

R2S | job 134188 → 134225 → 134254 (producer), 134271 (verifier) | VISUAL_REJECTED, NOT ADOPTED

TL;DR

3
producer attempts
9:03
job 134254 elapsed
309
verified output files
538 / 1660
protected owner changes (ext1/ext2)
NO
visual improvement

1 배경 / 목적

앞선 whole-scene 브랜치(wall mask, additive plane, per-camera billboard, structural shell job 132295, table emission 튜닝)는 모두 REJECTED였고, 공통 실패는 카메라별로 벽·캐비닛 지오메트리가 서로 다르게 맞아 doubled fitting과 black void가 남는 것이었다. 이번 가설은 두 외부 카메라가 하나의 shared world 구조를 보도록 old mesh 일부를 XYZ/UV를 보존한 채 supported front geometry로 교체하는 것이다.

기존 한계: 카메라별 patch는 서로 다른 답을 내므로 어느 한쪽 view에서만 개선되고 다른 view에서 protected 영역(actor, 이미 잘 보이는 static)을 훼손함.

2 작업 내용

Producer : r2s/shared_structure_rebuild.py (frozen plan SHA-256 2e514a7f…03415a) Launcher : scripts/shared_structure_rebuild.sbatch — CPU-only own, 16 CPU / 64 GiB / 15 min Verifier : scripts/verify_shared_structure_rebuild.sbatch <producer_jobid> (8 CPU / 32 GiB) 파이프라인: frozen input 검증 → 4-class supported front geometry + atlas → partial old-mesh 교체(XYZ/UV 보존) → content-addressed packaging → immutable compiled physics/camera check → AA0/AA4 worker render → named-owner / protected-hole gate → source-decision witness → embedded-PNG HTML

독립 리뷰 체인 (author 자체 승인 아님)

단계결과핵심 finding
Producer code review 1차REQUEST CHANGES (2 HIGH, 2 MEDIUM)descriptive Foundation temporal asset 이름이 ValueError("parent asset is not content addressed") 유발; inverse protected-static hole veto 부재
Producer 재리뷰COMMENT, 0 issues (34/34 tests)4건 모두 해결 + 회귀 테스트 4개 추가
ArchitectureWATCH (blocker 없음)SDK-hidden depth로 visible intrusion을 면제하던 waiver 제거; retained-structure owner 변경 veto 추가
Checker code reviewREQUEST CHANGES (2 HIGH, 2 MEDIUM) → 2 MEDIUM → COMMENT (9/9)임의 shared_* geom 우회, report-controlled output list로 필수 파일 누락 가능, fixture PNG의 mandatory embed 누락
증거 정정: 7-component inventory는 plan 문구(solid 5개)와 달리 4 solid mesh + 3 textured quad. 또한 mass=0, contype=0, conaffinity=0 flat OBJ는 MuJoCo 3.3.7에서 compile 성공 — Architect의 초기 blocker는 재현 실패로 철회됨.

3 결과 (수치)

Job 이력

Job상태Elapsed내용
134188TIMEOUT15:0034 tests + native fixture 통과, 214,085 supported front triangle freeze 후 partial old-mesh replacement 중 시간 초과. full scene/render 없음
134225FAILED2:1760min 진단 limit 요청했으나 RuntimeError: old-face subdivision capacity exceeded로 즉시 실패 (OOM/GPU 아님)
134254COMPLETED9:03원래 15min 예산 그대로 성공. portable scene + 41 MiB embedded-image HTML 생성
134271COMPLETED1:50independent verifier: 309 files, 135 PNG, 99 crops, 물리/카메라/state/object pose 동일성 PASS

134225 root cause

Foundation 26638268 chunk 8192의 compiled face 8590이 다른 카메라(ext1)에서 129,950px edge로 투영되며 optical plane 근처·화면 밖. 자기 source camera에서는 삼각형이 ≤5.657px인데, lookup subdivision에 양쪽 view 16px 요건을 걸어 불필요하게 폭증한 것. 수정: subdivision을 designated source camera로만 제한(삭제 판정은 여전히 양 카메라 cone + semantic/depth 검사). 테스트 36 → 38 producer + 9 checker.

Deterministic protection gate (134254)

Gateext1ext2판정
actor intrusion (각 tested state)2 px—FAIL
source0 protected front intrusion1 px180 pxFAIL
protected static hole33 px0 pxFAIL
protected owner change538 px1,660 pxFAIL
Visual review (reports/shared_structure_rebuild_visual_review.json, 41 image path): overall improvement NO / NO SELECTION. 기존 black void, wall/cabinet fragmentation, doubled fitting 그대로이며 ext2에 faint cabinet outline artifact가 추가됨. Reviewer의 초기 "candidate-only actor loss" 과대 주장은 paired evidence로 정정됨.

4 Takeaway

의미

successful packaging(309 file 검증)과 realism은 별개임이 수치로 확인됨: integrity PASS인데 protected owner 변경이 ext2에서만 1,660px. 또 134188의 15분 TIMEOUT을 blind time extension 대신 진단(134225, 2:17)으로 풀어 root cause를 특정한 점은 유효한 절차였다. 그러나 이 stage는 terminal negative이며 selected parent 131913은 그대로다 (aggregate 0/5, 이후 G001 audit 완료로 1/5 — 별도 카드 참조).

5 Next Steps

미해결 한계

세 카메라/시점 간 shared scene을 mesh 교체 방식으로는 protected 영역을 지키지 못함. wall mask, additive plane, per-camera billboard 재시도와 "packaging 성공 = realism" 주장은 금지.

다음 작업

genuinely different한 shared scene representation 또는 whole-scene reconstruction 전략 필요 — 이후 Gaussian(gsplat) compositor oracle 경로(별도 카드)로 이동.