File size: 2,888 Bytes
f2fc5e7
 
 
 
 
 
0c09af7
f2fc5e7
 
 
 
 
 
 
 
41e3d9d
f2fc5e7
 
 
a68e3ed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
---
title: Extend3D
emoji: 🧩
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 5.34.2
python_version: "3.10"
app_file: app.py
suggested_hardware: a10g-large
tags:
  - 3d-generation
  - image-to-3d
  - gaussian-splatting
  - mesh
short_description: "[CVPR 2026] Extend3D: Town-Scale 3D Generation"
pinned: false
---

<div align="center">
    <h1>Extend3D: Town-scale 3D Generation</h1>
    <h3>CVPR 2026</h3>
    <p align="center">
      <a href="https://seungwoo-yoon.github.io">Seungwoo Yoon</a>,
      <a href="https://www.jinmo.kim">Jinmo Kim</a>,
      <a href="https://jaesik.info">Jaesik Park</a>
      <br />
      Seoul National University
    </p>
    <a href="https://seungwoo-yoon.github.io/extend3d-page">
        <img src="https://img.shields.io/badge/Project_Page-website-green?logo=GoogleChrome&logoColor=white"/>
    </a>
    <a href="#">
        <img src="https://img.shields.io/badge/arXiv-paper-red?logo=arxiv" />
    </a>
    <a href="#">
        <img src="https://img.shields.io/badge/Huggingface-demo-blue?logo=huggingface&logoColor=white" />
    </a>
</div>

![teaser](assets/images/teaser.png)


## 🛠 Preparation

### Environment
- Linux x86-64 system
- NVIDIA GPU with 24GB VRAM ($a=b=2$)
- CUDA version ≥ 12.4

Larger scene generation may require more VRAM.

### Install
```bash
conda create -n extend3d python=3.10
conda activate extend3d
pip install -r requirements.txt
```

If your GPU does not support pytorch-2.4.0, follow instructions in [SETUP.md](./SETUP.md).


## 🚀 Usage

### Quick Start
```python
from extend3d import Extend3D
from PIL import Image
import imageio

from trellis.utils import render_utils, postprocessing_utils

pipeline = Extend3D.from_pretrained("microsoft/TRELLIS-image-large").cuda()
image = Image.open("assets/examples/0.png")

output = pipeline.run(image)

video = render_utils.render_video(output['gaussian'][0], r=1.6, resolution=1024)['color']

imageio.mimsave('sample_gs.mp4', video, fps=30)

glb = postprocessing_utils.to_glb(
    output['gaussian'][0],
    output['mesh'][0],
    simplify=0.9,
    texture_size=1024
)
glb.export(os.path.join(args.output_dir, 'sample.glb'))
```
You may follow [example.py](./example.py) for detailed hyper-parameters.

### Gradio Demo
```bash
python app.py
```

## 📚 Citation
```bibtex
@inproceedings{yoon2026extend3d,
    title     = {Extend3D: Town-scale 3D Generation},
    author    = {Yoon, Seungwoo, and Kim, Jinmo, and Park, Jaesik},
    booktitle = {Proceedings of the Computer Vision and Pattern Recognition Conference},
    year      = {2026}
}
```

##  Acknowledgement
This repository is based on the implementation from [Trellis](https://github.com/microsoft/TRELLIS/tree/442aa1e1afb9014e80681d3bf604e8d728a86ee7).
We sincerely thank the authors for releasing their code.
We also thank the anonymous reviewers for their insightful and constructive feedback.