WorldGen
đ WorldGen - Generate Any 3D Scene in Seconds
Install / Use
/learn @ZiYang-xie/WorldGenREADME
WorldGen: Generate Any 3D Scene in Seconds
<div align="center"> <img src="./assets/logo.png" alt="logo" width="300" style="margin-bottom: 210px;"/> </div> <div align="center"> </div>Author đ¨âđģ: Ziyang Xie Contact Email đ§: ziyangxie01@gmail.com
Feel free to contact me for any questions or collaborations!
đ Introduction
đ WorldGen can generate 3D scenes in seconds from text prompts and images. It is a powerful tool for creating 3D environments and scenes for games, simulations, robotics, and virtual reality applications.
- Instant 3D Generation âĄī¸ : Create full 3D scenes from input data in seconds
- 360° Free Exploration đ§ : WorldGen supports free 360° consistent exploration of the generated 3D scene with loop closure.
- Diverse Scenes Support đ : WorldGen supports both indoor and outdoor scenes, both realistic and unrealistic scenes in any style.
- Flexible Rendering đ¸ : WorldGen supports rendering at any resolution with any camera setting and trajectory in real-time.
Two lines of code to generate a 3D scene in seconds
# Use our API to generate a 3D scene
worldgen = WorldGen()
worldgen.generate_world("<TEXT PROMPT to describe the scene>")
Text-to-Scene Generation
<div align="center"> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/text2scene/indoor1.gif" alt="demo" width="400"/> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/text2scene/outdoor1.gif" alt="demo" width="400"/> <br> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/text2scene/indoor2.gif" alt="demo" width="400"/> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/text2scene/outdoor2.gif" alt="demo" width="400"/> </div>Image-to-Scene Generation
<div align="center"> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/img2scene/painting.png" alt="demo" width=300 height=200 /> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/img2scene/painting.gif" alt="demo" width=350 height=200/> <br> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/img2scene/street.png" alt="demo" width="300" height=200 /> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/img2scene/street.gif" alt="demo" width=350 height=200/> </div>News and TODOs
- [x]
03.17.2026đ§ [Improved Quality] Improve the GS quality by fixing the project scale issue. Make ml-sharp dependency optional. - [x]
01.10.2026đĨ [New feature] Add support for ml-sharp (modified to work on 360 images) for better GS generation (Currently in experimental mode) - [x]
05.10.2025đ¤ Add support for low-vram generation (Only use ~10GB VRAM for generation). - [x]
04.26.2025đ New Relase a project page for WorldGen - [x]
04.22.2025đĄ Add support for mesh scene generation (Should give better results than splat) - [x]
04.21.2025đ Opensource the WorldGen codebase - [x]
04.19.2025đŧī¸ Add support for image-to-scene generation - [x]
04.17.2025đ Add support for text-to-scene generation - [ ] Release technical report and video
- [ ] Support better background inpainting (Invisible region inpainting)
đĻ Installation
Getting started with WorldGen is simple!
# Clone the repository
git clone --recursive https://github.com/ZiYang-xie/WorldGen.git
cd WorldGen
# Create a new conda environment
conda create -n worldgen python=3.11
conda activate worldgen
# Install torch and torchvision (with GPU support)
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu128
# Install worldgen
pip install .
# Install pytorch3d dependencies
pip install git+https://github.com/facebookresearch/pytorch3d.git --no-build-isolation
# đĨ [New feature]: If you want to use the ml-sharp experimental feature, you need to install the ml-sharp dependencies
pip install -e submodules/ml-sharp
# You should also accept the license of the gated model (FLUX.1-dev).
# https://huggingface.co/black-forest-labs/FLUX.1-dev
# Login to Hugging Face and accept the license.
# huggingface-cli login
đšī¸ Quick Start / Demos
We provide a demo script to help you quickly get started and visualize the 3D scene in a web browser. The script is powered by Viser.
# Generate a 3D scene from a text prompt
python demo.py -p "A beautiful landscape with a river and mountains"
# đĨ New feature: Generate a 3D scene using the ml-sharp experimental feature (It may produce better results than the default mode)
python demo.py -p "A well-designed cozy bedroom" --use_sharp
# Generate a 3D scene from an image
python demo.py -i "path/to/your/image.jpg" -p "<Optional: TEXT PROMPT to describe the scene>" --use_sharp
# Generate a 3D scene in mesh mode
# Make sure you installed my customized viser to correctly visualize the mesh without backface culling
# pip install git+https://github.com/ZiYang-xie/viser.git
python demo.py -p "A beautiful landscape with a river and mountains" --return_mesh
After running the demo script, A local viser server will be launched at http://localhost:8080, where you can explore the generated 3D scene in real-time.
đŽ Advanced Usage
WorldGen API
Quick start with WorldGen (mode in t2s or i2s) and generate your first 3D scene in seconds:
- đ Text to Scene: Generate a 3D scene from a text prompt
# Example using the Python API
from worldgen import WorldGen
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
worldgen = WorldGen(mode="t2s", device=device, low_vram=False) # Set low_vram to True if your GPU VRAM is less than 24GB.
splat = worldgen.generate_world("<TEXT PROMPT to describe the scene>")
splat.save("path/to/your/output.ply") # Save splat file as a .ply file, which can be loaded and visualized using a standard gaussian splatting viewer
- đŧī¸ Image to Scene: Generate a 3D scene from an image
worldgen = WorldGen(mode="i2s", device=device, low_vram=False) # Set low_vram to True if your GPU VRAM is less than 24GB.
image = Image.open("path/to/your/image.jpg")
splat = worldgen.generate_world(
image=image,
prompt="<Optional: TEXT PROMPT to describe the image and the scene>",
)
- đĄ Generate a 3D scene in mesh mode
mesh = worldgen.generate_world("<TEXT PROMPT to describe the scene>", return_mesh=True)
o3d.io.write_triangle_mesh("path/to/your/output.ply", mesh) # Save mesh as a .ply file
[!Tip] We also support background inpainting for better scene generation, but it's currently an experimental feature, which may not work for all scenes.
It can be enabled by settingWorldGen(inpaint_bg=True).
# If want to use background inpainting feature, install iopaint
pip install iopaint --no-dependencies
Free-viewpoint Exploration in 3D Scene
<div align="center" style="margin-bottom: 15px;"> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/free_explore/beach-converted.gif" alt="demo" width="400"/> <img src="https://github.com/ZiYang-xie/WorldGen/blob/demos/assets/free_explore/indoor-converted.gif" alt="demo" width="400"/> <br> </div>[!Note] WorldGen internally support generating a 3D scene from a 360° panorama image đ¸, which related to how WorldGen works: You can try it out if you happen to have a 360° panorama (equirectangular) image. Aspect ratio of the panorama image should be 2:1.
pano_image = Image.open("path/to/your/pano_image.jpg")
splat = worldgen._generate_world(pano_image=pano_image)
âī¸ Star History
Give a star to WorldGen if you like it!
đ Citation
If you find this project useful, please consider citing it as follows:
@misc{worldgen2025ziyangxie,
author = {Ziyang Xie},
title = {WorldGen: Generate Any 3D Scene in Seconds},
year = {2025},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/ZiYang-xie/WorldGen}},
}
đ¤ Acknowledgements
This project is built on top of the follows, please consider citing them if you find them useful:
Some of the core methods and ideas in this project are inspired by the following projects, special thanks to them:
- WonderWorld [RGBD to GS conversion]
- WorldSheet [Mesh Generation]
Related Skills
node-connect
334.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.2kCommit, push, and open a PR
