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>

## 🛠 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.
|