VLM이 절차적 생성 코드를 고쳐 사실적인 3D 세계를 만든다
InfiniDream: Open-Ended Photorealistic 3D Worlds Through Procedural Generation
무엇인가
절차적 생성은 3D 자산을 실행 가능한 프로그램으로 표현하기 때문에 정적 메시보다 편집성, 다양성, 확장성이 뛰어나 합성 데이터 생성과 게임 개발에서 널리 쓰인다. 문제는 정교한 사실적(photorealistic) 절차적 시스템을 만드는 데 있다. Infinigen은 4만 줄이 넘는 코드와 손수 제작한 자산 팩토리로 사실적인 장면을 만들지만, 생성 가능한 자산 범주가 미리 정의된 팩토리와 절차 규칙에 묶인다. VLM으로 코드를 생성하는 쪽은 상대적으로 단순한 자산에 머물고, Code2Worlds처럼 Infinigen을 VLM으로 조종하는 최근 연구는 함수 호출과 파라미터 조정, 기존 생성기의 조합에 갇혀 새로운 유형의 자산을 만들어내지 못한다. 검색·생성 모델로 메시를 모아 대규모 세계를 만드는 계열은 인스턴스 단위 편집은 되지만 파라미터화된 편집성과 시드 기반 기하 변형을 잃는다. 이 논문은 이 세 가지 한계를 동시에 겨냥한다.
어떻게 동작하나
InfiniDream은 텍스트 프롬프트 하나를 입력으로 받아 초기 장면을 고르고, Director라 부르는 VLM 모듈이 자산 요구사항·의미적 배치 제약·모션을 담은 구조화된 Scene Plan을 만든다. 프레임워크의 축은 두 개다. Symbolically Constrained Asset Generation은 기존 절차적 코드베이스를 관리 가능한 편집 공간으로 축소해 VLM이 그 안에서만 코드를 고치게 하고, Deterministic Frustum-Guided Grid Placement는 VLM이 낸 의미적 제약을 결정론적 계산으로 정확한 3D 좌표로 바꾼다. 그 위에 자산 풀링, 지형 정제, 애니메이션이 얹힌다.
무엇과 다른가
SCE의 출발점은 VLM에게 Infinigen 전체 코드베이스를 그대로 주면 편집이 부정확해진다는 관찰이다. 그래서 먼저 텍스트 설명과 선택적 참조 이미지로 가장 관련 있는 팩토리를 검색하고 Factory Brief를 만든다. 여기에는 핵심 함수와 의존 관계를 표시한 Code Structure Map, 깊이 제한 의존성 분석으로 동적으로 식별한 자산별 편집 가능 모듈(Editable Surface), 노드 그래프 같은 공유 저수준 알고리즘에 읽기 전용으로 접근하는 Linked Infrastructure가 들어간다. 이 세 가지가 코드 수준의 명시적 제약이 되어 편집 범위를 제한하면서 기존 절차 알고리즘은 보존한다. 이어 Planner가 편집 전략, 대상 위치, 필요한 수정, 의존성, 위험을 담은 Editing Plan을 만든다. 전략은 세 가지로, 기존 파라미터와 상위 로직을 조정하는 Tweak, 새 절차 함수를 도입하는 Create, 필요할 때 보호된 모듈까지 편집 권한을 넓히는 Promote다. Coarse Constructor는 원래 팩토리 진입점과 함수 시그니처를 그대로 유지해 기존 population 파이프라인과 랜덤 시드 제어가 깨지지 않게 하면서 거친 자산을 만든다. 참조 이미지에 맞추기 위해 파라미터를 고정하는 대신 샘플링 범위를 조정하는 방식으로 시드 의존 무작위성을 보존하는 점이 눈에 띈다. 마지막으로 Reviser가 렌더 결과를 목표 설명·참조 이미지와 반복 비교해 기하·재질·세부의 차이를 찾아 정해진 편집 경계 안에서 코드를 고치고, Selector가 반복 중 최선 후보를 고른다.
어떻게 쓰나
장면 수준에서는 Director가 자연어 계획을 add·replace·delete 연산과 자산 요구사항, 의미적 배치 제약을 담은 Scene Plan으로 바꾼다. 배치 모드는 의미적으로 중요한 객체를 위한 Hero, 넓은 영역 분포를 위한 Scattering, 군집 개체를 위한 Swarm 세 가지이며, Hero는 rooted, upright, tilted, conform, afloat, airborne, submerged의 일곱 가지 anchoring을 지원한다. Semantic Target과 Surface Policy가 대상 영역, 허용 표면 종류, 경사 한계, 지지 조건을 추가로 규정한다. Director는 인스턴스 수 N, 서로 다른 프로토타입 수 K, World Motion, Local Animation도 정한다. 중요한 설계는 VLM의 결정을 이산적인 의미 연산과 제약으로 한정하고 연속적인 기하 계산은 결정론적 배치에 맡긴다는 점이다. Frustum 기반 후보 생성은 카메라 이미지 평면을 2D 격자로 이산화하고 각 카메라 광선을 따라 3D 후보 위치를 만든다. 표면에 지지되는 객체는 광선과 장면 기하의 교차로, 공중·수중 객체는 광선 위 이산 깊이 구간에서 샘플링한다. 각 후보는 가시성, 모션 스윕 영역과의 충돌, 인스턴스 간 간격, 표면 정책(표면 종류·경사 한계·완전 지지), 투영 면적 밴드의 다섯 가지 결정론적 검사를 통과해야 한다. 깊이 정렬된 후보 가운데 다섯 조건을 모두 만족하는 가장 가까운 후보를 고르는 것이 식 (1)의 의미다. 가까운 것부터 찾기 때문에 작은 물체는 가까이, 큰 물체는 멀리에 놓이는 크기 인지 배치가 암묵적으로 나온다. 인스턴스가 여러 개면 초기 탐색 깊이를 점진적으로 늘리고 이미 놓인 객체를 충돌 검사에 포함하며, 유효 위치가 없으면 계층적 제약 완화를 적용한다.
전제와 한계
자산을 매번 새로 만드는 비용을 줄이기 위해 Infinigen의 자산 풀링을 독립 객체 population으로 확장한다. Director가 정한 K개의 프로토타입을 서로 다른 팩토리 시드로 생성하고, N개 인스턴스는 링크 복제로 만들어 비싼 생성을 N회에서 K회로 줄이면서 프로토타입 간 시드 기반 다양성은 유지한다(식 2). 풀링에 부적합한 자산은 개별 생성한다. 이후 자산을 anchoring 모드에 맞춰 배치하고 Infinigen의 정밀 지형 파이프라인과 결합하며, World Motion과 Local Animation을 공유 모션 명세로 묶어 배치 제약과 실제 궤적이 어긋나지 않게 한다.
평가는 객체 수준 100개 태스크(6개 카테고리)와 장면 수준 20개 태스크로 나뉘며, 해상도는 각각 1024×1024와 960×540이다. 생성과 렌더링에는 Blender 4.x, VLM 백본으로는 Claude Opus 4.8을 쓴다. 객체 수준 베이스라인은 VLM one-shot, VLM harness, VIGA, BlenderRAG, Infinigen이고, 장면 수준은 VLM harness, VIGA, Infinigen, Code2Worlds다. 지표는 CLIP, SigLIP2, DINOv3, ImageReward 네 가지다. 객체 수준에서 CLIP·SigLIP2·ImageReward는 45도, 135도, 225도, 315도의 고정 시점 네 개에 대해 평균하고, DINOv3는 정면 뷰를 같은 프롬프트로 독립 생성한 held-out 참조 이미지 네 장과 비교해 평균 코사인 유사도를 낸다. 코드 실행 가능성도 함께 보고한다. 장면 수준은 각 방법의 주 카메라 뷰를 쓰고, DINOv3는 Gemini 3 Pro Image가 같은 장면 프롬프트로 만든 광각 사진 참조 한 장과 비교하는데 이 참조는 어떤 방법에도 생성 시 제공되지 않는다. 저자들은 객체·장면 양쪽에서 네 지각 지표 모두 최고 점수를 냈다고 보고한다. 다만 이 원문 발췌에는 표의 구체적 수치와 베이스라인 대비 개선폭이 제시되지 않았다. 사람 선호도 연구는 참가자 30명이 객체 10개·장면 10개 태스크에서 의미 정합성과 시각 품질을 비교하는 방식이다. 다양성 분석은 TRELLIS.2와 15개 프롬프트에서 비교했는데, InfiniDream은 시드만 바꿔 5개 변형을 만들고 TRELLIS.2는 독립 생성한 참조 이미지 5장을 쓰며, SigLIP2 의미 정합성은 비슷한 수준을 유지하면서 평균 쌍별 DINOv2 특징 거리로 잰 시각적 다양성은 더 높았다고 한다. 절제 실험은 객체 수준에서 참조 이미지 제거, 랜덤 팩토리, Planner 제거, Infinigen 전체 코드베이스를 준 자율 에이전트, Refiner 제거, 3라운드 제한의 6가지(전체 파이프라인은 최대 6라운드 정제)를 25개 동물·식물 태스크에서, 장면 수준에서 Grid Search 제거, Anchoring 제거, Semantic Target 제거, VLM 자율 배치 에이전트의 4가지를 20개 장면에서 평가한다. 장면 배치 지표는 화면 밖이거나 이미지 면적의 0.1% 미만을 차지하는 객체 비율(Unreadable Rate), 객체 최저 접점과 지지면 사이 거리(Ground-contact Error), 접점별 지형 상대 간극의 최대·최소 차이(Contact Spread)이며 뒤의 두 개는 P95로 보고한다.
실무 관점에서 이 논문은 LLM에게 3D 코드를 통째로 쓰게 하는 접근과 기존 절차 생성기를 함수 호출로 조종하는 접근 사이의 빈칸을 겨냥한다. 합성 데이터 파이프라인에서 시드만 바꿔 기하 변형을 뽑아야 하거나, 자산을 나중에 파라미터로 다시 조정해야 하는 요구가 있다면 메시 생성 모델보다 이쪽이 맞다. 반면 그대로 가져다 쓰기 전에 확인할 것은 세 가지다. 첫째, SCE가 특정 절차 코드베이스(Infinigen)의 구조를 전제로 하므로 다른 생성기에 이식하려면 Factory Brief와 Editable Surface를 다시 정의해야 한다. 둘째, VLM 호출은 의미 계획에만 쓰이고 좌표는 결정론적으로 계산되므로 배치 품질의 상한은 다섯 가지 제약 검사와 제약 완화 정책이 정한다. 셋째, 공개 코드와 프로젝트 페이지가 있으니 재현 비용과 Blender 버전 의존성을 직접 확인하는 편이 좋다.
저자들이 밝힌 한계는 두 가지다. 현재 애니메이션 파이프라인이 미리 정의된 모션 타입 집합에 의존한다는 점으로, 향후 VLM이 애니메이션 코드 자체를 생성해 더 복잡하고 사용자 정의된 모션을 지원하는 방향을 제안한다. 두 번째는 공간 관계와 객체 상호작용이 더 복잡한 실내 환경으로 확장하는 것이다. 여기에 더해 원문 서술상 전제로 읽히는 부분이 있다. 평가가 100개 객체·20개 장면 규모이고, 장면 수준 DINOv3 비교는 프롬프트당 참조 이미지 한 장에 기대므로 지표 분산이 크지 않은지 확인이 필요하다.