CityPaint: A Free Lunch from 2D Diffusion for City-Scale 3D Texturing

Yuchen Zou, Lihuang Fang, Siyu Zhu, Xiao Hu
10/20/2026
cs.CVcs.AI

No confident code implementation found for this paper.

Abstract

Generating high-fidelity, city-scale 3D environments plays a crucial role in applications such as virtual reality, gaming, and urban digital twins. However, the scarcity of real-world city-scale 3D training data forces existing methods to either stitch independently generated assets or learn from synthetic urban corpora, often sacrificing realism and global consistency. In contrast, 2D image data and their corresponding generative models are abundant and encode rich visual priors. To bridge this gap, we propose CityPaint, a novel framework that leverages 2D diffusion models to generate globally consistent city-scale 3D textures without relying on city-scale 3D training data. Specifically, CityPaint integrates geometric priors with the generative power of 2D diffusion models, introducing a robust top-$K$ camera baking strategy for iterative texture projection. To address the artifacts of 2D-to-3D projection, we further propose a decoupled refinement mechanism that separately optimizes terrain and building textures. Extensive experiments show that CityPaint produces globally coherent textures with fine local details and achieves favorable results against strong baselines in both visual quality and cross-view consistency.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{zou2026citypaint,
  title  = {CityPaint: A Free Lunch from 2D Diffusion for City-Scale 3D Texturing},
  author = {Yuchen Zou and Lihuang Fang and Siyu Zhu and Xiao Hu},
  year   = {2026},
  eprint = {2610.27564},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2610.27564v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2610.27564.svg)](https://codeofpaper.com/paper/2610.27564)

Discussion