프로젝트 페이지: https://worldmirror-page.github.io/ 논문: arXiv:2610.31834 (2026-10-22 공개)

로봇 학습을 시뮬레이션에서 하려면 먼저 시뮬레이션 안에 장면이 있어야 한다. 책상, 그 위의 컵, 서랍, 로봇 팔의 위치까지 전부다. 지금까지는 대부분 사람이 이 장면을 손으로 만들었다. 그래서 학습 데이터의 다양성이 사람이 만든 장면 수에 묶였다.

WorldMirror 는 이 문제를 반대 방향에서 푼다. 현실에서 이미 찍어 둔 로봇 시연 영상에서 출발해, 그 장면을 시뮬레이션 안에 다시 세운다. 이른바 real-to-sim 이다. Xspark AI·칭화대·홍콩대·UCL·베이징대 연구진의 작업이다.

핵심 아이디어 — 장면을 “고쳐 가며 실행하는 프로그램” 으로 본다

이 작업에서 가장 흥미로운 지점은 재구성 결과물을 메시나 점군이 아니라 실행 가능한 세계 프로그램(executable world program) 으로 다룬다는 것이다. 그러면 장면 재구성이 소프트웨어 개발처럼 된다.

  1. 코딩 에이전트가 영상 속 장면을 분해하고 재구성 계획을 세운다.
  2. 이미지 생성·3D 생성 같은 전문 도구를 불러 각 물체를 만든다.
  3. 카메라를 보정하고 세계를 조립한다.
  4. 검증 단계가 결과를 평가하고, 그 피드백을 다시 라우터 에이전트에 돌려준다.
  5. 라우터는 피드백을 보고 어디를 다시 할지 정한다.

고정된 파이프라인이 아니라 “만들고, 확인하고, 다시 만드는” 루프다. 페이지의 표현으로는 “An agent that builds, checks, and builds again.” 다.

카메라 기준 좌표계 — 궤적을 고치지 않고 재생하기 위해

두 번째 축은 장면 표현 방식이다. WorldMirror 는 카메라 자세에 고정된(camera-pose-anchored) 좌표계 하나로 세계를 세 층으로 나눈다.

  • 정적인 시각 배경
  • 받침 기하(책상 면처럼 물체가 놓이는 면)
  • 편집 가능한 상호작용 물체

장면·물체·로봇이 같은 좌표계에 있으니, 원래 시연에서 기록된 로봇 궤적을 리타깃팅 없이 그대로 시뮬레이션에서 재생할 수 있다. 재구성이 틀렸으면 재생이 실패하고, 그 실패가 다시 검증 피드백이 된다. 재구성의 정답지가 따로 없어도, 기록된 궤적 자체가 정답지 역할을 하는 셈이다.

저자들이 보고한 결과

아래 수치는 모두 프로젝트 페이지와 논문에 저자들이 보고한 값이다. 제3자 재현 결과는 아직 찾지 못했다. 실험은 공개 로봇 시연 데이터셋 DROID 위에서 했고, 궤적 재생은 NVIDIA Isaac Sim 에서 했다.

궤적 재생 (Table 4)

방법 변위 오차 (cm) ↓ 접촉 F1 ↑ 재생 성공률 ↑
RoLA 24.70 – –
GPT-6 Astra 11.17 0.653 40%
WorldMirror 1.79 0.873 100%

외관 (Table 2, 같은 외부 시점 10장): WorldMirror 는 PSNR 13.57, LPIPS 0.427, DISTS 0.168 로 비교 대상 중 가장 좋았다. SSIM 은 RoLA(0.587)가 WorldMirror(0.570)보다 조금 높았다.

배치 (Table 3): 여기서는 결과가 갈린다. 상대 거리 오차는 WorldMirror 가 가장 낮았지만(0.219), IoU 와 위치 오차는 GPT-6 Astra 가 더 좋았다(IoU 0.598 vs 0.469, 위치 오차 8.72 vs 9.66). 저자들도 페이지에 “배치는 픽셀과는 별개의 계약” 이라고 적어 두었다.

검증 루프가 진짜 기여인가 — 절제 실험

이 작업의 주장은 “에이전트가 검증 피드백으로 세계를 고친다” 이므로, 루프를 빼면 무엇이 무너지는지가 중요하다. 레일 조작 과제 하나에 대한 절제 실험(Table 5·6)이 그 답이다.

  • 한 번만 재구성하고 재생(One-pass): 실패. 물체의 이동·들어올림 값이 0 이다. 처음 재생한 자리에서 물체가 움직이지 않았다는 뜻이다.
  • 진단 없이 반복만(Fixed Iterative): 역시 실패.
  • 실패를 진단하고 표적 수정(Full): 성공. 최종 위치 오차 2.34cm, 재생 4회.
  • 구성요소를 빼 보면 적응형 라우팅이나 피드백 수정을 뺐을 때 실패한다. 반면 상태 메모리를 빼도 이 과제에서는 성공했고 수치도 거의 같았다(2.35cm).

즉 이 과제에서 결정적인 건 “몇 번 반복했나” 가 아니라 “무엇이 틀렸는지 읽고 거기를 고쳤나” 다. 다만 과제 하나에 대한 결과라서, 일반화하려면 논문 본문의 추가 실험을 봐야 한다.

읽으면서 든 생각

  • “세계 = 프로그램” 이라는 관점이 진짜 기여다. 결과물이 코드이니 diff 를 볼 수 있고, 검증이 실패하면 어느 줄이 틀렸는지 좁힐 수 있다. 코딩 에이전트가 잘하는 일(분해, 계획, 도구 호출, 테스트 실패 보고 고치기)을 3D 재구성에 그대로 옮겨 왔다.
  • 정답지가 따로 필요 없다. 기록된 궤적이 시뮬레이션에서 다시 성공하느냐가 곧 테스트다. 소프트웨어로 치면 “기존 로그를 재생해서 같은 결과가 나오는지 보는 회귀 테스트” 와 같은 구조다.
  • 한계도 페이지에 명시돼 있다. 비교는 Isaac Sim 안의 궤적 재생이지 실제 로봇 정책 평가가 아니다. 이렇게 만든 세계에서 학습한 정책이 현실에서 더 잘 움직이는가(sim-to-real)는 이 작업의 범위 밖이다.

References