Index
2026-08-26 — Progress

논문 핵심 Figure 4종 전면 재설계 — AI 생성 이미지 → 실제 벤치마크 프레임 파이프라인

scene_bench_paper | figures/{figure_common,make_teaser_fig,make_protocol_fig,make_task_overview,make_stats_fig,make_all_figures}

TL;DR

3/4
데이터 기반 카드
4
재생성 figure
19
변경 파일(2번째 커밋)
1
명령으로 전부 재생성

1 배경 / 목적

기존 teaser·protocol figure는 GPT-image-2로 생성한 일러스트 이미지 위에 TikZ로 라벨을 오버레이하는 방식(figures.tex의 \benchTeaserFigure 등)이었다. 벤치마크 논문에서 핵심 그림(벤치마크가 왜 memory를 요구하는지, 평가 프로토콜이 어떻게 동작하는지)이 실제 데이터가 아닌 생성 이미지에 의존하면, 리뷰어가 "이 그림이 실제로 벤치마크를 반영하는가"를 의심할 근거가 된다. 09:37 KST의 첫 커밋(task-overview 신규)에서 4개 memory function 카드 중 3개(Finding/Restore/Resume)를 실제 벤치마크 프레임으로 채운 뒤, 이어서 teaser·protocol까지 동일 원칙으로 재작업했다.

기존 한계: teaser/protocol figure는 TikZ 좌표를 손으로 튜닝해 라벨을 이미지 위에 얹는 방식이라, 이미지가 바뀌면 좌표를 전부 재조정해야 했고 데이터가 바뀌어도 그림은 갱신되지 않는 정적 일러스트였음.

2 작업 내용

1) 데이터 기반 task-overview figure 신규 — db89c3c (19:37 KST, 8 files, +153/-2)

figures/make_task_overview.py (신규, 136 lines) 4개 카드 중 3개는 실제 벤치마크 실행 프레임: Finding: tmp/exec_online/25748de7ff7a/turn_4_obs_0.png Restore: tmp/exec_online_restore3_v5/0d9cb78f61ce/turn_4_obs_0.png Resume: DATASET_sample_v1 type2/val_101__1100, frame 651 Routine 카드만 AI 생성 일러스트 유지 (해당 family 데이터셋 미생성 상태이므로) AI use statement 갱신: "Routine 카드만 AI 생성, 나머지는 벤치마크 실행 프레임"으로 명시

2) 공유 모듈 신설 + 전체 재설계 — 40dcb91 (19:54 KST, 19 files, +443/-250)

figures/figure_common.py (신규) — 4개 스크립트 공통 시각 언어 팔레트: BG #F6F8FB, INK #14213D, MUTED #647084, LINE #D8E0EA, BLUE/ORANGE/PURPLE/GREEN/RED 계열 헬퍼: rounded()(둥근 박스+그림자), image_ax()(이미지 crop+배치), pill()(색상 라벨 배지), save_figure()(pdf.fonttype=42 vector 저장 + FIGURE_PREVIEW=1일 때 png 미리보기 동시 저장) figures/make_teaser_fig.py (신규) — TikZ+AI이미지 오버레이 방식을 폐기하고 matplotlib으로 완전 재작성. 실제 벤치마크 프레임으로 "물체 위치가 시간에 따라 바뀐다"는 memory 필요성을 직접 시각화 figures/make_protocol_fig.py (신규) — 기존 TikZ protocol figure를 대체, 3-tier(QA/replay/online) 파이프라인을 공통 모듈로 재구성 figures/make_stats_fig.py, make_task_overview.py — figure_common.py 사용하도록 리팩토링(각각 127줄, 210줄 변경) figures/make_all_figures.sh (신규) for script in make_teaser_fig.py make_task_overview.py make_stats_fig.py make_protocol_fig.py; do conda run -n mlspaces python "figures/$script" done iclr2027_conference.tex: figure/figure* 전환(teaser, protocol을 2-column 전체 폭으로 확대), AI use statement 재작성 — "teaser·protocol의 이미지 패널도 벤치마크 프레임"으로 갱신

영향 파일: figures/*.py(5개, 그중 3개 신규), figures/make_all_figures.sh(신규), iclr2027_conference.tex, sections/benchmark.tex, PDF/PNG 산출물 다수. 2개 커밋 합산 27 files, +596/-252.

3 결과 (수치)

Figure이전이후
teaser (Fig.1)GPT-image-2 생성 이미지 + TikZ 라벨 오버레이matplotlib, 벤치마크 프레임 기반, figure*(전체 폭)
protocol (Fig.2)GPT-image-2 생성 이미지 + TikZ 라벨 오버레이matplotlib, 공유 모듈 사용, figure*
task-overview (Fig.3, 신규)없음4카드 중 3개 벤치마크 프레임 + 1개(Routine) AI 일러스트
stats (Fig.4)독립 스크립트, 32.9KB pdf공유 모듈 사용으로 리팩토링, 33.2KB pdf(레이아웃 소폭 변경)
AI 생성 의존도 감소: 이전엔 teaser·protocol 이미지 패널 전부(2개 figure)가 AI 생성이었으나, 재설계 후 AI use statement 기준 남은 AI 생성 요소는 task-overview의 Routine 카드 1개뿐 — 나머지 3개 카드 + teaser + protocol은 전부 실제 실행 프레임.
재현성: make_all_figures.sh 한 번 실행으로 4개 figure(teaser/task_overview/stats/protocol) 전부 재생성 — 이전엔 각 스크립트를 개별 실행하거나(stats) 손으로 TikZ 좌표를 재조정(teaser/protocol)해야 했음.

4 Takeaway

의미

벤치마크 논문에서 핵심 그림이 실제 데이터를 반영하지 않는다는 지적은 리뷰에서 흔히 나오는 문제인데, 이번 재설계로 teaser·protocol·task-overview 3개 그림의 이미지 근거가 "AI가 상상한 그림"에서 "실제로 실행된 벤치마크 프레임"으로 바뀌었다. 동시에 4개 그림이 하나의 공유 모듈(figure_common.py)과 단일 실행 스크립트로 통합되어, 데이터가 갱신될 때마다(153→200 episodes 등) 그림을 일괄 재생성할 수 있는 기반이 마련됐다.

5 Next Steps

미해결 한계

Routine family 데이터셋이 아직 생성되지 않아 task-overview의 4번째 카드는 여전히 AI 생성 일러스트에 의존 — Routine 데이터 생성이 완료되기 전까지는 "전 카드가 데이터 기반"이라는 주장을 할 수 없음. teaser/protocol이 figure*(전체 폭)로 커지면서 9페이지 한도 재검증도 필요(260827-results_table_consolidation.html 카드와 동일한 지면 이슈).

다음 작업

Routine 데이터셋 생성 완료 시 make_task_overview.py의 4번째 카드를 실제 프레임으로 교체 후 make_all_figures.sh 재실행. 벤치마크 통계(153/759 → 200/1,160) 확정 시점에 make_stats_fig.py도 같은 스크립트로 일괄 재생성.