정책의 imagination은 action과 video를 공동 생성하므로(policy 모드) 자기가 의도한 미래를 그릴 뿐 물리 예측 책임이 없다. base Cosmos3-Nano의 forward-dynamics 모드는 실제 실행된 액션을 조건으로 강제받는다. 정책이 실패한 에피소드의 액션을 그대로 되먹여, WM이 그 실패를 그리는지 본다.
판정 — state: 윈도우 종료 시점의 최종 조작 상태(무엇을 쥐고/놓고 있는가)가 실제와 같은가 (match / under-commit / object lost). 전체 composite(wrist + 외부 2뷰) 기준, 단일 평가자.
| 조건 (1회 외삽 시간) | state match | 실패 16건 | 성공 16건 | outcome 정확도 (결정가능) |
|---|---|---|---|---|
| N=1 — 1.07s | 32/32 (100%) | 16/16 | 16/16 | 32/32 (100%) |
| N=2 — 2.13s | 31/32 (97%) | 16/16 | 15/16 | 31/31 (100%) |
| N=4 — 4.27s | 27/32 (84%) | 13/16 | 14/16 | 27/29 (93%) |
| N=8 — 8.53s | 21/32 (66%) | 13/16 | 8/16 | 21/25 (84%) |
얼마나 자명한지는 persistence baseline(조건 프레임을 그대로 복사)으로 잰다. 지표는 LPIPS(wrist 뷰, 낮을수록 실제와 유사).
| 경과 horizon | open-loop 모델 | persistence(첫 프레임) | 개선폭 |
|---|---|---|---|
| 1.07s | 0.1594 | 0.2728 | +41.6% |
| 2.13s | 0.2522 | 0.3585 | +29.7% |
| 3.20s | 0.3417 | 0.4051 | +15.7% |
| 4.27s | 0.4165 | 0.4670 | +10.8% |
| 5.33s | 0.4678 | 0.5038 | +7.1% |
| 6.40s | 0.4947 | 0.5224 | +5.3% |
| 7.47s | 0.4974 | 0.5089 | +2.3% |
| 8.53s | 0.5141 | 0.4862 | -5.7% |
fd 액션 10차원의 마지막 채널이 gripper 명령이다(모델 공간 1−g, 정규화 후 open=+1 / closed=−1). 전 32 에피소드에서 window step 32에 정확히 open→closed로 토글하고 재파지·릴리즈까지 실린다. 아래 영상 하단 스트립이 매 프레임 WM에 들어간 gripper 명령이다.
각 영상 = [ 실제 SIM | WM N=1 (1.07s) | WM N=4 (4.27s) | WM N=8 (8.53s) ], 15 Hz 공통 시계. 패널 위 파란 눈금은 그 조건이 실제 프레임을 재주입받은 시점, 하단 스트립은 매 프레임 gripper 명령(초록=OPEN, 빨강=CLOSED). 왼쪽에서 오른쪽으로 갈수록 "모델이 혼자 상상한 시간"이 길어진다.
| episode | 실제 | N=1 | N=2 | N=4 | N=8 | 비고 |
|---|---|---|---|---|---|---|
| [00] cfgoff_RubiksCubeRightOfBowl_env0 | F | match | match | object lost | object lost | 큐브가 파란 blob으로 변형 |
| [01] cfgoff_RubiksCubeRightOfBowl_env1 | F | match | match | match | match | 큐브 파지 상태 유지 |
| [02] cfgoff_RubiksCubeRightOfBowl_env4 | S | match | match | match | under-commit | 큐브가 빨간 그릇 위에 배치됨 — 8.5s에선 실패했던 판정 |
| [03] cfgon_RubiksCubeRightOfBowl_env2 | S | match | match | match | under-commit | 큐브 그릇 위 배치 재현 — 8.5s에선 실패 |
| [04] cfgoff_RubiksCubesInBin_env0 | F | match | match | match | match | 파란 큐브 + 주변 배치까지 일치 |
| [05] cfgoff_RubiksCubesInBin_env5 | F | match | match | match | match | 주황 큐브 파지(약간 반투명) |
| [06] cfgoff_RubiksCubesInBin_env1 | S | match | match | under-commit | under-commit | 실제는 bin 투하, 예측은 계속 쥠 (8.5s와 동일한 유일 케이스) |
| [07] cfgoff_RubiksCubesInBin_env7 | S | match | object lost | object lost | object lost | 큐브 소멸 (유일한 불일치) |
| [08] cfgoff_StackWhiteMugs_env0 | F | match | match | match | match | 머그 테이블 잔류 상태 일치 |
| [09] cfgoff_StackWhiteMugs_env1 | F | match | match | match | object lost | 빈 그리퍼 상태는 일치하나 물체 정체성 교체(marginal) |
| [10] cfgoff_StackWhiteMugs_env5 | S | match | match | match | under-commit | 머그 배치 완료 재현 — 8.5s에선 실패 |
| [11] cfgon_StackWhiteMugs_env2 | S | match | match | match | object lost | 머그 2개 적재 재현 — 8.5s에선 소멸 |
| [12] cfgoff_MustardInRightBin_env3 | F | match | match | match | match | 병이 bin 옆에 누운 실패 재현 |
| [13] cfgoff_MustardInRightBin_env6 | F | match | match | match | match | 병 파지 상태 일치 |
| [14] cfgoff_MustardInRightBin_env2 | S | match | match | match | object lost | 병 파지 재현 — 8.5s에선 소멸 |
| [15] cfgoff_MustardInRightBin_env4 | S | match | match | match | object lost | 병 파지 재현 — 8.5s에선 소멸 |
| [16] cfgoff_GreenSpoonsInPot_env0 | F | match | match | match | match | 주걱 파지 |
| [17] cfgoff_GreenSpoonsInPot_env1 | F | match | match | match | match | 주걱 파지 |
| [18] cfgoff_GreenSpoonsInPot_env2 | S | match | match | match | match | 주걱 파지 |
| [19] cfgon_GreenSpoonsInPot_env8 | S | match | match | match | match | 주걱 파지 |
| [20] cfgoff_BowlStackingRightOnLeft_env1 | F | match | match | object lost | object lost | 그릇 1개가 blob으로 뭉개짐 |
| [21] cfgoff_BowlStackingRightOnLeft_env7 | F | match | match | under-commit | match | 실제는 그릇 미접촉, 예측은 그릇을 든 상태(marginal) |
| [22] cfgoff_BowlStackingRightOnLeft_env5 | S | match | match | match | match | 그릇 기울인 파지 일치 |
| [23] cfgoff_BowlStackingRightOnLeft_env8 | S | match | match | match | match | 그릇 파지 일치 |
| [24] cfgoff_FruitsOnionToPlate_env1 | F | match | match | match | match | 호박 파지 + 과일 배치 일치 |
| [25] cfgoff_FruitsOnionToPlate_env2 | F | match | match | match | match | 라임·오렌지 배치 거의 정확 |
| [26] cfgoff_FruitsOnionToPlate_env0 | S | match | match | match | match | 양파 접시 배치 일치 |
| [27] cfgoff_FruitsOnionToPlate_env8 | S | match | match | match | match | 석류 접시 배치 일치(물체 중복 약간) |
| [28] cfgoff_FoodPacking1Cans_env0 | F | match | match | match | match | 캔 테이블 잔류 재현 |
| [29] cfgoff_FoodPacking1Cans_env1 | F | match | match | match | match | 캔 파지 상태 일치(라벨 변형) |
| [30] cfgon_FoodPacking1Cans_env1 | S | match | match | match | match | 캔 파지 일치 |
| [31] cfgon_FoodPacking1Cans_env8 | S | match | match | match | match | 캔 파지 일치 |
"실패한 예시를 world model에 넣으면 실패한다고 예측하나?" → 예, 그리고 그 신호는 leakage 때문이 아니다. 4.27초를 혼자 상상하게 해도 실패 13/16을 미완료로 그리고 outcome 정확도는 93%다. 어떤 조건에서도 실패를 성공으로 그리지 않았다.
대신 반대 방향으로 틀린다. 오래 상상할수록 완료 이벤트를 놓쳐 모든 것을 미완료로 본다(성공 재현 16/16→8/16). 실패 감지기로 쓰면 recall은 높고 precision이 떨어진다 — 성공한 롤아웃도 "아직 안 끝났다"고 부른다.
실용 결론: WM 기반 평가·실패 감지는 2–4초 재접지 구간에서 설계하면 된다(그 구간 outcome 93–100%). 8초 이상 순수 상상은 물체 정체성 유지 자체가 안 되므로 쓰지 않는다.
n=32, 단일 평가자·최종 프레임 기준 육안 판정(초기 v1에서 실제 오판이 발생해 전면 재판정한 이력이 있다). 실패의 저변화 성격이 recall을 부풀렸을 가능성이 남는다. base Nano는 실사 DROID 학습이라 sim 렌더가 OOD — open-loop drift에 도메인 갭이 섞여 물리 한계와 분리되지 않는다. seed 1개.
① 동적 실패만 따로 recall 재측정 — 물체를 떨어뜨림·쓰러뜨림처럼 상태가 크게 변하는 실패만 골라야 "관성 예측이 우연히 맞은 것"과 분리된다(§2 교란 제거). ② VLM judge 자동화 + 남은 467 usable 에피소드로 스케일. ③ N=3, N=6을 채워 붕괴 지점을 좁히기. ④ seed ensemble 분산을 실패 신호로 쓸 수 있는지. ⑤ sim 영상으로 fd 경량 fine-tune 후 붕괴율 재측정.