The rise of 3D Gaussian Splatting has revolutionized photorealistic 3D asset creation,
yet a critical gap remains for their interactive refinement and editing.
Existing approaches based on diffusion or optimization are ill-suited for this task,
as they are often prohibitively slow, destructive to the original asset's identity,
or lack the precision for fine-grained control. To address this, we introduce SplatPainter,
a state-aware feedforward model that enables continuous editing of 3D Gaussian assets from user-provided 2D view(s).
Our method directly predicts updates to the attributes of a compact,
feature-rich Gaussian representation and leverages Test-Time Training to create a state-aware, iterative workflow.
The versatility of our approach allows a single architecture to perform diverse tasks,
including high-fidelity local detail refinement, local paint-over, and consistent global recoloring,
all at interactive speeds, paving the way for fluid and intuitive 3D content authoring.
Method Overview. Given an input 3DGS asset, the framework first performs a one-time preprocessing step. The asset is rendered from multiple views to generate feature-rich inputs from a Gaussian LRM. Stage I compresses this into a compact latent representation via a local transformer. The interactive editing loop in Stage II then iteratively refines this latent representation using new 2D user edits (New input(s)) and a Test-Time Training (TTT) module to produce the final edited 3DGS.
User-specified high-resolution patches and graffiti are propagated consistently across views while preserving the original asset identity.
A few relit input views drive a consistent global change in shading and color across the full asset.
User-specified edits (e.g., graffiti) are propagated consistently across views while preserving the original asset identity. The 3DGS assets are generated from Trellis.
@article{splatpainter2025,
author={Zheng, Yang and Tan, Hao and Zhang, Kai and Wang, Peng and Guibas, Leonidas and Wetzstein, Gordon and Wang, Yifan},
title = {SplatPainter: Interactive Authoring of 3D Gaussians from 2D Edits via Test-Time Training},
journal = {arXiv preprint},
year = {2025},
}