Index
2026-09-24 — Analysis

주입 컨테이너(빨래바구니) 파킹 자리 결함 — routine·resume·오라클 공통

scene_bench | 씬 복원 게이트 결함 근본 원인 분석

TL;DR

0/121
routine 바구니 목적지 성공
132
resume v3 영향 칸
97.5%
navigate 도착이 파킹 줄

1 배경 / 목적

resume 오라클 스모크(src_main9)에서 blind가 2턴 만에 "'basket' does not exist in the house object list"로 abort했다. 처음에는 계획 문장의 이름 문제로 보고 물체 목록 이름을 붙였는데, 탈락 컷 복원 재검사에서 put_in_container 과제의 이미 놓인 배우(done_units)가 전부 placed_on(햄퍼)=False로 나와 씬을 직접 확인하게 됐다.

2 작업 내용

로그인 GPU 프로브(train_4772 cut_04)로 확인: 컨테이너 루트 바디가 생성기 파킹 자리 (4.4, 0.0, 2.6)에 그대로 있었다.

원인 사슬: 컨테이너는 static=True로 주입 → 관절 없음 → 자세가 qpos가 아니라 model.body_pos 컷/final npz의 check_names는 추적 배우(감자 등)뿐 → restore_final_state가 컨테이너를 건드리지 않고도 match_ratio 1.0을 냄 검증 게이트(G4)는 바디 "존재"만 확인해 파킹 자리를 그대로 통과시킴 정본 = subtasks.json["stage"][task_id]["container"] 생성기 resume_stage.place_upright(바닥 안착) + fixture_open.pin_open(뚜껑 고정)이 남긴 기록 수정(커밋 5fbbbf5): scene_edit.place_stage_containers — 생성기 함수로 세우기+뚜껑 열기+top_z assert verify_scene_restore에 G7(컨테이너 방 안·z<1·뚜껑) 추가 placed_on 판정 — 수용체가 컨테이너면 생성기 resume_stage.inside 규칙 사용

3 결과

실험영향 범위
실험 2 routine 온라인(682칸)바구니 목적지 121칸 성공 0/121(나머지 106/561 = .189)
실험 2 resume v3(372칸)통 과제 포함 132칸(61871a3e 72 · fd856246 60)
실험 3(오라클) routine(615칸)90칸(18질의·17편) 구조적 0
실험 3(오라클) resume(715칸)통 과제 질의 ≈60개(≈300칸)

navigate 도착 자리 실측: routine 40건 중 39건(97.5%)이 파킹 줄 쪽(y<1.0). 수정 검증: train_4772 cut_04에서 통 (2.70, 10.15) top_z=0.617 lid=1, 복원 match 1.0, done 배우 placed_on=True(뚜껑 열기 전후 top_z .617→.874 assert 통과). tests/exec + nav_gate 422개 통과.

규모: 이 버그 하나가 실험 2·3, routine·resume 4개 표 전부의 "바구니 담기" 지표를 무의미하게 만들고 있었다.

4 Takeaway

의미

실험 2 routine/resume의 "바구니 담기 전멸"은 VLA 능력 부족이 아니라 씬 결함이었다. 이 칸들은 목적지가 실제로 집 밖(허공)에 있어 실행 자체가 GT와 달랐으므로 사후 재채점이 불가능하고, 재실행이 필요하다(routine 121 + resume 132칸). 복원 게이트는 "바디가 있는가"가 아니라 "제자리에 있는가"(G7)를 봐야 한다는 것이 일반화 가능한 교훈이다.

5 Next Steps

재실행 진행 상태

routine 오라클 컨테이너 90칸은 src_main12로 재실행 완료(별도 카드 참조). resume 오라클은 스모크 재실행 후 본 런 승인 절차가 진행 중.

다른 가족 전수 점검

static 주입물 복원 규칙이 find 등 다른 가족에도 같은 방식으로 적용되는지 점검이 필요하다.