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