SIGGRAPH 2026. [Paper] [Page] [Github]
Etai Sella, Hao Phung, Nitay Amiel, Or Litany, Or Patashnik, Hadar Averbuch-Elor
Tel Aviv University | Cornell University | Technion
26 Apr 2026

Introduction

본 논문에서는 이미지 기반 편집기와 세밀한 3D 제어 기능을 명시적인 primitive 기반 shape abstraction을 통해 연결하는, 학습이 필요 없는 3D 편집 프레임워크를 제안하였다. 이 프레임워크는 픽셀 공간에서 직접 작동하는 대신, 입력 3D 에셋을 해석 가능한 소수의 primitive로 분해한다. 사전 학습된 VLM은 이 abstraction을 기반으로 정확한 primitive 수준의 편집을 명세화하고, 이는 SOTA 3D 생성 모델을 가이드하여 3D shape을 세밀하고 로컬하게 수정한다. 구조와 수치적인 공간 관계를 명시적으로 드러냄으로써, 본 프레임워크는 VLM이 픽셀 공간만으로는 표현하기 어려운 세밀한 3D 편집을 추론할 수 있도록 한다.

3D 생성 과정을 정확하게 유도하기 위해, primitive 기반 편집을 활용하여 geometry를 보존, 변형 또는 새롭게 합성해야 할 부분을 결정하고, 이러한 제약 조건을 3D diffusion model의 latent space에 직접 적용하는 proxy-induced denoising 전략을 도입했다. 이 전략의 핵심은 입력 shape과 편집된 proxy에서 유래한 inverted latent를 합성하는 블렌딩 메커니즘을 사용하는 것이다. 이를 통해 생성 프로세스는 원본 shape의 정체성을 유지하면서 지정된 구조적 편집을 따를 수 있다. 마지막으로, 일관성 있는 편집 구조를 생성한 후, 2D 이미지 편집기를 사용하여 외형을 개선한다. 2D 이미지 편집기의 강력한 비전 prior를 활용하여 스타일을 수정하고 고품질의 3D shape을 출력한다.

Method

입력 3D shape \(\mathcal{S}_\textrm{orig}\)와 텍스트 기반 편집 지침 \(c_\textrm{txt}\)가 주어졌을 때, 본 방법은 primitive 기반 proxy 표현을 추출하고 편집하여 편집된 3D shape \(\mathcal{S}_\textrm{edit}\)을 생성한다. 이 proxy는 입력 shape을 추상화하고 VLM을 사용하여 추상화된 표현을 편집함으로써 추출된다. 그런 다음 편집된 abstraction을 사용하여 원래 3D shape의 구조와 외형을 수정한다.


본 논문에서는 superquadric을 proxy shape을 구성하는 primitive로 활용한다. Superquadric은 다음 암묵적 방정식을 만족하는 점 $(x, y, z)$들의 집합으로 정의된다.

\[\begin{equation} f(x, y, z) = \left( \left\vert \frac{x}{a_1} \right\vert^{\frac{2}{\epsilon_2}} + \left\vert \frac{y}{a_2} \right\vert^{\frac{2}{\epsilon_2}} \right)^{\frac{\epsilon_2}{\epsilon_1}} + \left\vert \frac{z}{a_3} \right\vert^{\frac{2}{\epsilon_1}} = 1 \end{equation}\]

각 primitive $q$는 11개의 파라미터, 즉 scale \(\textbf{a} = [a_1, a_2, a_3] \in \mathbb{R}_{>0}^3\), shape exponent \(\epsilon = [\epsilon_1, \epsilon_2] \in \mathbb{R}_{>0}^2\), translation $\textbf{t} \in \mathbb{R}^3$, rotation $\textbf{r} \in \mathbb{R}^3$로 parameterize된다.

본 논문에서는 먼저 sparse한 구조($64^3$ occupancy grid)를 생성하고, 그 후 Structured Latent (SLAT) space에서 외형 feature를 합성하는 계층적 프레임워크인 TRELLIS를 기반으로 한다. 두 단계 모두 latent voxel grid에 rectified flow transformer를 적용하여 텍스트 또는 이미지에 따라 noise로부터 3D 데이터를 예측한다. 최종적으로 생성된 feature는 텍스처 메쉬와 같은 다양한 형식으로 디코딩된다.

프롬프트 파싱

본 방법의 전 단계로, LLM을 사용하여 텍스트 명령 \(c_\textrm{txt}\)를 두 개의 개별 텍스트 설명으로 파싱한다.

  • 구조 편집 프롬프트 \(c_\textrm{txt}^\textrm{struct}\)
  • 외형 편집 프롬프트 \(c_\textrm{txt}^\textrm{app}\)

1. Editing Abstractions with a Vision-Language Model

구조적 조작을 수행하기 위해 먼저 \(\mathcal{S}_\textrm{orig}\)의 geometry를 discrete한 parametric 표현으로 추상화한다. 표면을 샘플링하여 dense한 포인트 클라우드를 얻고, 이를 SuperDec으로 처리하여 shape을 superquadric 집합으로 분해함으로써 proxy shape인 \(\mathcal{P}_\textrm{orig}\)를 생성한다. 생성된 primitive들을 생성 프로세스에 컨디셔닝되는 대략적인 볼륨 가이드로 취급된다. 이를 통해 3D diffusion model의 강력한 shape prior를 활용하여 discretization 오류나 proxy의 미세한 정렬 불량을 보정하고, 초기 primitive가 완벽하지 않더라도 높은 정확도의 geometry를 합성할 수 있다.

다음으로, VLM을 편집 에이전트로 사용한다. 시각적 추론을 용이하게 하기 위해, \(\mathcal{P}_\textrm{orig}\)의 각 primitive에 고유한 인덱스와 서로 다른 색상을 할당하고, 모든 primitive의 파라미터를 구조화된 JSON 파일로 만든다. 에이전트는 다음과 같은 멀티모달 컨텍스트를 제공받는다.

  1. 색칠된 proxy \(\mathcal{P}_\textrm{orig}\)의 네 개의 직교 뷰(정면, 후면, 좌측, 우측)를 포함하는 이미지
  2. 원본 shape \(\mathcal{S}_\textrm{orig}\)의 레퍼런스 렌더링
  3. Primitive의 파라미터를 포함하는 구조화된 JSON
  4. 구조 편집 프롬프트 \(c_\textrm{txt}^\textrm{struct}\)

무엇보다 중요한 것은 JSON에 색상 코드를 포함함으로써 VLM이 시각적 정보를 파라미터 목록의 특정 entry에 연결할 수 있다는 점이다. VLM은 JSON 내의 primitive 파라미터를 조작하거나 목록 구조를 수정하여 (primitive 추가/삭제) \(c_\textrm{txt}^\textrm{struct}\)를 만족시키도록 지시받으며, object의 정체성을 유지하기 위해 최소한의 개입이라는 엄격한 원칙을 준수해야 한다. 저자들은 VLM이 관련 primitive를 찾고 편집 계획을 세운 다음, 완전히 업데이트된 JSON 파일을 출력하도록 VLM에게 chain-of-thought 추론 과정을 출력하도록 지시하였다.

저자들은 robustness을 확보하기 위해 시각적 검증 루프를 구현했다. 수정된 JSON을 받으면 동일한 네 가지 뷰에서 새로운 proxy \(\mathcal{P}_\textrm{edit}\)을 렌더링하고 이러한 렌더링 결과를 대화 기록과 함께 VLM에 다시 입력한다. 모델은 변경 사항이 \(c_\textrm{txt}^\textrm{struct}\)를 만족하는지 검증하도록 요청받는다. 수정이 불충분하거나 오류가 있는 것으로 판단되면 VLM은 개선된 JSON을 생성한다.

이 검증 전략은 proxy 표현의 본질적인 단순성을 활용한다. VLM은 상세하고 텍스처가 있는 메쉬를 평가할 때 종종 일관성 없는 판단을 보이지만, proxy는 object의 구조를 깔끔하고 명확하게 시각화한다. 색상으로 구분된 이 추상화에서 수정을 검증함으로써 에이전트는 후속 생성 프로세스가 시작되기 전에 기하학적 제약 조건이 충족되었는지 확실하게 확인할 수 있다. 이 반복 과정은 수정 사항이 검증되거나 최대 반복 횟수에 도달할 때까지 계속된다.

2. Structural Editing via an Edited Abstraction

편집된 proxy \(\mathcal{P}_\textrm{edit}\)을 얻은 후, 편집된 3D shape \(\mathcal{S}_\textrm{edit}\)을 생성하는 것이 목표이다. 먼저 원본 shape을 warping하여 근사 편집 shape \(\mathcal{S}_\textrm{warp}\)을 구성한다. 그런 다음, 주어진 \(\mathcal{S}_\textrm{orig}\), \(\mathcal{S}_\textrm{warp}\), \(\mathcal{P}_\textrm{edit}\)에 대하여, TRELLIS의 structure diffusion model을 사용하여 \(\mathcal{S}_\textrm{edit}\)를 생성한다. 각 shape에 대해 timestep \(t_\textrm{init}\)까지 DDIM inversion을 적용하고, \(\mathcal{P}_\textrm{edit}\)의 inverted latent로 denoising process를 초기화하고, \(\mathcal{S}_\textrm{orig}\)와 \(\mathcal{S}_\textrm{warp}\)의 중간 inverted latent grid를 저장한다.

\(\mathcal{S}_\textrm{warp}\)의 구성과 denoising process 모두 변경되지 않아야 하는 영역, 수정되어야 하는 영역, 그리고 추가되거나 제거되어야 하는 영역을 구분하는 데 기반을 두고 있다. 이러한 영역 구분을 위해, \(\mathcal{S}_\textrm{orig}\)에 대한 \(\mathcal{P}_\textrm{edit}\)의 primitive들을 변경되지 않은 요소 \(\mathcal{Q}_\textrm{uc}\), 수정된 요소 \(\mathcal{Q}_\textrm{ed}\), 새로 추가 및 삭제된 요소 \(\mathcal{Q}_\textrm{new}\)의 세 가지 카테고리로 분류한다. 각 카테고리에 속하는 primitive들의 볼륨 합집합은 각각 해당하는 3D 공간 마스크 \(\mathcal{M}_\textrm{uc}\), \(\mathcal{M}_\textrm{edit}\), \(\mathcal{M}_\textrm{new}\)를 정의한다.

\(\mathcal{S}_\textrm{warp}\) 구성

Superquadric의 포즈 파라미터 $(\textbf{t}, \textbf{r}, \textbf{a})$를 이용하여 각 primitive에 대해 로컬 좌표계에서 월드 좌표계로의 변환 행렬 $M = TRS \in \mathbb{R}^{4 \times 4}$를 구성할 수 있다. 이 행렬 $M$은 primitive의 bounding volume과 방향을 정의하지만, 곡률 파라미터 $\epsilon$은 고려하지 않는다. 따라서, 대응하는 두 superquadric이 주어졌을 때, 각각의 행렬을 이용하여 한 primitive의 좌표계를 다른 primitive의 좌표계로 매핑하는 상대적인 affine transformation을 정의한다.

\(\mathcal{S}_\textrm{warp}\)를 만들기 위해 편집된 각 primitive 쌍 \((q_\textrm{orig}^{(i)}, q_\textrm{edit}^{(i)}) \in \mathcal{Q}_\textrm{ed}\)를 개별적으로 처리한다. 먼저 상대적 변환 \(M_\textrm{rel}^{(i)} = M_\textrm{edit}^{(i)} (M_\textrm{orig}^{(i)})^{-1}\)을 계산하고 이를 \(\mathcal{S}_\textrm{orig}\)의 vertex들에 적용하여 \(\mathcal{S}_\textrm{warp}\)를 생성한다. 이 \(\mathcal{S}_\textrm{warp}\)은 추가되거나 제거된 primitive를 고려하지 않았기 때문에 최종 편집된 shape이 아니다.

Proxy-Induced Denoising Process

Denoising process는 \(z_\textrm{init}\)으로 초기화된다. \(z_\textrm{init}\)은 \(\mathcal{P}_\textrm{edit}\)의 inverted latent grid를 기반으로 하고, 여기에 \(\mathcal{S}_\textrm{orig}\)와 \(\mathcal{S}_\textrm{warp}\)의 inverted latent grid를 공간 마스크 기반으로 합성하여 만든 것이다. 이후 diffusion model은 \(c_\textrm{txt}^\textrm{struct}\)를 조건으로 하여 이미지를 생성한다. 공간 마스크 \(\mathcal{M}_\textrm{uc}\), \(\mathcal{M}_\textrm{edit}\), \(\mathcal{M}_\textrm{new}\)는 각각에 대한 소스를 voxelize하여 결정된다.

각 denoising step에서 먼저 denoiser 업데이트 \(z_{t+1} \rightarrow z_t\)를 적용한 다음, 각 마스크 영역의 voxel을 할당된 레퍼런스 latent로 덮어쓴다. 원본 shape의 디테일을 보존하기 위해 진화하는 noisy latent grid를 \(\mathcal{S}_\textrm{orig}\)와 \(\mathcal{S}_\textrm{warp}\)의 inverted latent grid와 혼합한다.

각 timestep에서 마스크로 정의된 각 공간 영역은 다음과 같이 처리된다.

\(\mathcal{M}_\textrm{uc}\): 원본 shape 주입

Proxy가 변경되지 않는 영역에서는 원본 shape을 엄격하게 보존해야 한다. 이를 위해 \(\mathcal{S}_\textrm{orig}\)의 inverted latent grid인 \(z_t^\textrm{orig}\)를 활용한다. 모든 voxel \(v \in \mathcal{M}_\textrm{uc}\)에 대해 생성된 latent $z_t [v]$를 레퍼런스 latent $z_t^\textrm{orig} [v]$로 대체한다. 즉, denoising가 다음 latent를 예측한 후, \(\mathcal{M}_\textrm{uc}\)의 모든 voxel을 원본 shape의 inverted latent로 덮어쓴다. 이 주입은 \(t_\textrm{init}\)으부터 나중 timestep \(t_\textrm{uc} \approx 0\)까지 적용되어 원래 구조가 완벽하게 유지되도록 한다.

\(\mathcal{M}_\textrm{new}\): 새로운 영역

추가되거나 삭제된 primitive \(\mathcal{Q}_\textrm{new}\)에 해당하는 영역의 경우, 편집된 proxy에 지정된 대략적인 구조를 적용한다. Denoising process는 inverted proxy에서 초기화되므로, \(\mathcal{M}_\textrm{new}\) 내의 voxel은 진화하는 latent grid $z_t$에서 직접 가져온다.

\(\mathcal{M}_\textrm{edit}\): 편집된 영역 주입

Affine transformation을 거친 primitive (𝑞(𝑖)𝑒𝑑𝑖𝑡 ∈ Q𝑒𝑑)의 경우, 새로운 기하학적 자세를 유지하면서 표면 디테일을 보존하는 것을 목표로 한다. \(\mathcal{S}_\textrm{warp}\)의 inverted latent grid \(z_t^\textrm{warp}\)를 활용하여 편집된 primitive \(q_\textrm{edit}^{(i)}\)로 정의된 볼륨 영역에 주입한다. 구체적으로, 각 denoiser step 후, voxel \(v \in \mathcal{M}_\textrm{edit}\)에 대한 latent $z_t [v]$를 \(z_t^\textrm{warp}[v]\)로 덮어쓴다. 이 주입은 \(t_\textrm{init}\)부터 중간 timestep \(t_\textrm{warp}\)까지 적용된다 (\(t_\textrm{uc} < t_\textrm{warp} < t_\textrm{init}\)). 이 전략은 원래 표면의 디테일을 조각별로 새 위치로 효과적으로 재배치하여 후속 denoising step에서 서로 다른 영역을 매끄럽게 결합하여 일관된 전체 구조를 만들 수 있도록 한다.

3. Appearance Refinement

이전 단계에서 생성된 편집된 sparse 구조를 기반으로, 세밀한 디테일과 외형 feature를 합성하는 것이 최종 목표이다.

먼저 원본 shape \(\mathcal{S}_\textrm{orig}\)의 뷰 \(\mathcal{V}_\textrm{orig}\)를 렌더링하고 2D 이미지 편집기를 사용하여 \(c_\textrm{txt}^\textrm{app}\)에 따라 편집하여 편집된 뷰 \(\mathcal{V}_\textrm{edited}\)를 얻는다. 그런 다음 \(\mathcal{V}_\textrm{orig}\)를 조건으로 \(\mathcal{S}_\textrm{orig}\)의 SLAT feature에 inversion을 적용하여 원본 shape의 SLAT feature \(z_t^\textrm{app}\)를 얻는다. 그런 다음, Gaussian nosie $z_T$로 denoising process를 초기화하고 TRELLIS의 appearance diffusion model을 적용한다. \(\mathcal{V}_\textrm{edited}\)를 조건 신호로 사용하고, 구조 생성 단계에서 사용했던 것과 유사한 블렌딩 전략을 적용한다.

구체적으로, 마스크 \(\mathcal{M}_\textrm{uc}\)와 \(\mathcal{M}_\textrm{edit}\)을 사용하여 진화하는 noisy SLAT feature $z_t$를 \(z_t^\textrm{app}\)과 혼합한다. \(\mathcal{M}_\textrm{uc}\)의 영역에 대해서는 \(z_t^\textrm{app}\)에서 해당하는 feature를 직접 복사하여 동일한 voxel 위치에 주입한다. Voxel \(v \in \mathcal{M}_\textrm{edit}\)에 대해, 편집 전 위치 \(v^\prime = (M_\textrm{rel}^{(i)})^{-1} v\)를 계산하고, $v^\prime$에서의 feature \(z_t^\textrm{app}\)를 추출하여 현재 denoising step에 주입한다. Denoising process는 $t = T$에서 \(t_\textrm{app}\)까지 진행되며, \(t_\textrm{app}\)은 원본 shape을 보존하는 것과 편집된 shape이 드러나도록 하는 것 사이의 균형을 조절한다. 실제로는 외형 편집이 적용되면 \(t_\textrm{app}\)을 $T$에 가깝게 설정하고, 외형 편집이 요청되지 않으면 원래 외형을 유지하기 위해 더 작은 값을 사용한다.

Experiments

1. Comparisons

2. Ablations

Limitations