SPLATIFY가 3DGS 논문을 학습 가능한 gsplat 코드로 자동 변환한다
SPLATIFY: Reproduce, Discover, Innovate! From Papers and Ideas to Trainable 3DGS Code
무엇인가
3D Gaussian Splatting(3DGS)은 2023년 등장 이후 3년이 채 안 되는 기간에 1,500편이 넘는 후속 논문을 쏟아냈고, 추적 저장소 기준으로 하루에 약 3편씩 arXiv에 올라온다. 문제는 지식이 흡수되는 속도보다 생산되는 속도가 훨씬 빠르다는 점이다. 추적된 3DGS 논문의 40% 이상이 코드를 공개하지 않고, 코드를 내놓은 경우에도 대부분 INRIA 원본 저장소를 포크한 일회성 저장소라 속성 레이아웃, 밀도 제어, 렌더링 관례, CUDA 커널 가정이 서로 맞지 않는다. 최신 기법 위에 무언가를 쌓으려면 몇 주에 걸친 수동 재구현과 디버깅이 필요하다. Paper2Code나 AutoP2C 같은 범용 논문-투-코드 파이프라인은 어떤 래스터라이저 백엔드로도 컴파일되지 않는 코드를 내놓고, 프런티어 모델은 가우시안 속성 결합이나 적응적 밀도 제어에 대한 도메인 지식이 없어 학습 시점에 무너지는 파이썬을 생성한다.
어떻게 동작하나
SPLATIFY는 이 문제를 세 단계 목표로 나눠 접근한다. 충실한 재현, 지식 기반 조합 개선, 그리고 기존 논문이 다루지 않은 장면 유형을 위한 학제간 방법 발명이다. 핵심 설계는 gsplat 기반 Nerfstudio 플러그인을 문맥 자유 문법(CFG)으로 형식화한 데 있다. 40편이 넘는 3DGS 논문(안티앨리어싱, 기하, 밀도화, 깊이 감독, 특징 증류)을 분석해 손실, 밀도화, 렌더링, 최적화를 아우르는 9개의 확장점을 정의하고, GSTemplateModel이라는 템플릿 클래스가 타일 기반 gsplat 래스터화, 적응적 밀도 제어, SH 스케줄, 카메라 최적화, 표준 옵티마이저 세트를 상속하게 했다. 에이전트는 이 클래스를 서브클래싱해 compute_custom_losses()나 populate_modules()·split_gaussians() 같은 훅만 덮어쓴다. 문법은 모든 에이전트의 시스템 프롬프트에 구조 명세로 들어가고, 생성된 저장소가 매 파일 생성 후에도 문법의 유효한 유도인지 검증하는 계약으로도 쓰인다. 즉 코드의 골격은 구조적으로 고정되고, 에이전트는 논문의 기여가 어느 확장점에 매핑되는지와 그 안에 들어갈 코드만 결정한다.
무엇과 다른가
파이프라인은 4단계다. 1단계에서는 MinerU로 논문을 구조화 마크다운으로 바꾸고, 20편의 수동 검증된 논문-코드 쌍을 시드로 둔 라이브러리에서 확장점 중첩도와 기법 유형 기준으로 가장 유사한 구현을 검색해 문맥 예시로 넣는다. 2단계가 3DGS 특유의 난점을 다루는데, 3DGS 논문의 약 70%가 INRIA 저장소의 포크로 코드를 배포하기 때문에 텍스트 수준 인용만 따라가면 코드 수준 의존성을 통째로 놓친다. 에이전트는 다중 홉 검색으로 의존성 그래프를 만들고, 인용된 논문의 저장소가 알려진 베이스(3DGS, Mip-Splatting, 2DGS, Scaffold-GS)를 포크했는지 확인한 뒤 부모 대비 구조적 diff를 계산해 변경된 각 함수에 loss/depth_distortion 같은 시맨틱 라벨을 붙인다. 이렇게 하면 함수 단위 기여를 정확히 복원할 수 있고, 전이적 포크 체인도 diff를 연쇄해 전체 수정 스택을 복구한다. 논문 예시로 든 Trick-GS는 7편에서 8개 기법을 조립하는데, 이 과정을 거치면 그래프가 12편으로 확장된다. 3단계에서는 마스터 에이전트가 위상 의존성 순서로 파일을 생성하며 DAG 구성, 인터페이스 동결, 구현, 스모크 테스트를 진행하고, 대부분의 저장소가 두 번의 반복 안에 통과한다. 4단계는 시각 피드백으로, 3k 반복 스모크 학습 후 렌더 이미지를 네 갈래 비평 에이전트에 보낸다. 국소 윈도 PSNR·SSIM 오차 맵, 교차 시점 아티팩트 합의로 플로터와 고스팅을 잡는 기하 분기, VLM이 구조화 진단과 후보 패치를 내는 의미 분기, 그리고 3DGS만의 학습 곡선 분기다. 3DGS는 학습이 분 단위라 전체 PSNR 궤적을 볼 수 있고, 15k 반복 부근에서 끝나는 밀도화 단계 이후 프루닝이나 손실 스케줄 오류가 드러난다. 에이전트는 15k 이후 급락(후기 붕괴)과 워밍업 후 5k 구간에서 0.1dB 미만 개선(정체) 두 모드를 탐지해 특정 확장점으로 결함을 국소화하고 표적 패치를 넣는다.
어떻게 쓰나
재현을 넘어서는 부분은 진화적 탐색으로 구현된다. 확장점이 정의하는 탐색 공간은 상호 배타적인 밀도화 전략, 가산적으로 결합되는 손실 항 집합, 안티앨리어싱 옵션, 외형 모델, 연속 학습 스케줄 파라미터로 구성된다. FunSearch에서 착안해 8개의 아일랜드를 두고 각 탐색 에이전트가 한 축을 변이시키거나 진단된 약점에 대응하는 손실·전략을 추가로 조합한다. 제안은 3단계 파이프라인을 거쳐 실행 가능한 코드가 되고, 2k→7k→30k 반복의 다중 충실도 캐스케이드로 각 단계마다 하위 절반을 제거해 연산을 줄인다. 순위는 정규화된 0.4·PSNR + 0.3·(1−LPIPS) + 0.3·SSIM에 대한 파레토 정렬로 매긴다. 3라운드 연속 개선이 없거나 라운드 예산이 소진되면 종료한다.
전제와 한계
실험은 새로 만든 Splatify-Bench에서 이뤄진다. 30편을 세 세트로 나누는데, 세트1은 공개 코드가 없는 10편에 의뢰한 전문가 참조 구현을 붙인 것이고(사전학습 오염을 배제할 수 있어 가장 강한 시험대다), 세트2는 공개 저장소가 있는 10편, 세트3은 검증 가능한 신규 기여가 많은 10편으로 신규성 분석 전용이다. 주 벤치마크는 Mip-NeRF 360(실외 5, 실내 4개의 언바운드 장면)이고 Tanks and Temples는 train과 truck만 쓴다. 8번째 이미지마다 테스트로 홀드아웃하고, 모든 방법을 A6000 48GB에서 30k 반복 동일 조건으로 학습한다. 결과적으로 세트1에서 SPLATIFY는 전문가 구현 대비 평균 ±0.5dB PSNR, ±0.02 SSIM 이내에 들어왔고, 전문가가 논문당 1~2주 걸린 것을 10~30분에 끝냈다. Paper2Code, AutoP2C, GPT-5.2·Gemini 3.1 Pro·DeepSeek 3.2 같은 프런티어 모델은 모두 학습 가능한 코드를 만들지 못했다. 세트2에서는 저자 원본 저장소와 비교해 평균 편차 0.3dB 미만을 기록했다. 신규성 보존은 C(정확 구현)/I(부분·오류)/M(누락) 라벨, 하이퍼파라미터 충실도, 가중 시맨틱 점수로 평가했고 모든 논문에서 시맨틱 점수 0.94 이상을 얻었다. LLM 판정은 Claude Opus 4.6이 맡았고, 3DGS 개발 경험이 있는 인간 전문가가 블라인드로 채점해 라벨 일치 κ=0.87, 시맨틱 점수 스피어만 ρ=0.92를 확인했다.
조합 개선 실험에서 에이전트는 어떤 기법을 적용할지 지시받지 않은 채 약점을 진단하고 지식 베이스에서 해법을 검색해 조합이 품질을 개선하는지 검증했다. 그 결과 재현 전용 베이스라인 대비 최대 +2.4dB PSNR 향상을 냈다. 같은 루프를 탐색 에이전트 대신 균등 무작위 샘플링으로 돌린 비교군은 8배 많은 토큰을 쓰고도 PSNR 개선의 4분의 1밖에 도달하지 못했다. 학제간 발명은 두 사례로 보여준다. 성간 성운 렌더링(NebulaGS)에서는 광학적으로 얇은 방출 매체의 가산적 적분과 콜모고로프 난류 스펙트럼이라는 물리 이론을 에이전트가 스스로 검색해 불투명도 상한 손실, 불투명도와 분리된 가우시안별 방출 파라미터, 2D FFT 로그 진폭 매칭을 통한 스펙트럼 주파수 손실, 구형 가우시안을 유도하는 스케일 등방성 페널티, 다중 스케일 L1 감독, SH 차수 0 설정 등 6개 수정을 합성했다. 결과는 32.52dB PSNR·0.914 SSIM으로 바닐라 3DGS의 31.19dB·0.862를 앞서고(+1.33dB, +0.052 SSIM), 시점별 표준편차가 6.29에서 2.62로 줄었으며 렌더링 속도는 영향받지 않았다. 박막 간섭 렌더링(BubbleGS)에서는 에어리 함수로 계산한 파장별 반사율을 RGB 파장에서 평가해 물리 예측 단위 색도를 만들고, 가우시안별 박막 두께 파라미터, 코사인 거리 기반 박막 색도 손실, α=0.45 불투명도 상한, 원판형 가우시안을 유도하는 껍질 평탄도 손실, 두께 맵 총변동, 두께 L1 희소성 등 6개 수정을 조합했다. 27.81dB PSNR·0.869 SSIM으로 바닐라의 26.97dB·0.858을 앞서고 LPIPS는 0.264에서 0.244로, 시점별 표준편차는 8.23에서 4.85로 개선됐다. 다만 두 번째 두께 래스터화 패스 때문에 FPS가 99.1에서 69.1로 떨어졌다(실시간 범위는 유지).
어블레이션은 세트1의 10편 평균으로 보고된다. CFG 제약이 학습 가능성에 가장 큰 영향을 미쳐 제약이 없으면 70%, 있으면 100%가 학습 가능했다. 포크 인식 복원도 결정적이어서 이것이 없으면 신규 기여의 30%가 구현되지 않는다. 스모크 테스트는 단일 항목으로 가장 큰 학습 가능성 하락(50%)을 막아주며, 그중 가우시안 구조 검사가 절반 정도를 담당한다. PSNR 곡선 모니터링은 짧은 실행에서는 보이지 않는 후기 단계 실패를 잡아낸다. GoT 없이 한 번에 생성하면 신규성 충실도는 높아도 의존성 순서가 깨진 단일 파일이 나와 점수가 0.49로 무너진다. 저자들이 밝힌 전제와 한계는 이렇다. SPLATIFY의 아키텍처 요소는 가우시안 스플래팅에 국한되지 않는다고 주장하지만, 3D 재구성 파이프라인이나 로보틱스 시뮬레이션 스택 같은 새 도메인에 적용하려면 해당 프레임워크의 확장점에 대한 CFG를 새로 정의하고 검증된 논문-코드 쌍 시드셋을 큐레이션해야 한다. 에이전트의 기본 LLM은 GPT-5.2이며, 평가는 Mip-NeRF 360과 Tanks and Temples 일부 장면에 한정된다. 코드, 데이터, 생성된 모든 구현은 공개 예정이라고 밝히고 있다.