[3DV 2026] "SceneGen: Single-Image 3D Scene Generation in One Feedforward Pass"
See the codeThis repository contains the official PyTorch implementation of SceneGen: https://arxiv.org/abs/2508.15769/.
Now the Training, Inference Code, and Pretrained Models have all been released! Feel free to reach out for discussions!
Project Page $\cdot$ Paper $\cdot$ Checkpoints
Clone the repo:
git clone https://github.com/Mengmouxu/SceneGen.git
cd SceneGen
Install the dependencies:
Create a new conda environment named scenegen and install the dependencies:
. ./setup.sh --new-env --basic --xformers --flash-attn --diffoctreerast --spconv --mipgaussian --kaolin --nvdiffrast --demo
The detailed usage of setup.sh can be found by running . ./setup.sh --help.
mkdir -p checkpoints
checkpoints directory. (SAM2 installation and its checkpoints are required for interactive generation with segmentation.)checkpoints directory as follows:
SceneGen/
โโโ checkpoints/
โ โโโ sam2-hiera-large
โ โโโ VGGT-1B
โ โโโ scenegen
| โโโckpts
| โโโpipeline.json
โโโ ...
We provide two scripts for inference: inference.py for batch processing and interactive_demo.py for an interactive Gradio demo.
This script launches a Gradio web interface for interactive scene generation.
python interactive_demo.py
๐ Quick Start Guide
๐ท Step 1: Input & Segment
- Upload your scene image.
- Use the mouse to draw bounding boxes around objects.
- Click "Run Segmentation" to segment objects.
โป For multi-image generation: maintain consistent object annotation order across all images.
๐๏ธ Step 2: Manage Cache
- Click "Add to Cache" when satisfied with the segmentation.
- Repeat Steps 1-2 for multiple images.
- Use "Delete Selected" or "Clear All" to manage cached images.
๐ฎ Step 3: Generate Scene
- Adjust generation parameters (optional).
- Click "Generate 3D Scene".
- Download the generated GLB file when ready.
๐ก Pro Tip: Try the examples below to get started quickly!
https://github.com/user-attachments/assets/d0d53506-70cd-4bd3-a6ab-2f9b5b16f4d8
Click the image above to watch the demo video
This script processes a directory of pre-segmented images.
assets/masked_image_test, containing segmented scene images.--gradio flag to launch a Gradio interface that visualizes both the ground truth and the generated model. We provide data from the 3D-FUTURE test set as a demonstration.python inference.py --gradio
To train and evaluate SceneGen, we use the 3D-FUTURE dataset. Please download and preprocess the dataset as follows:
metadata.csv.dataset_toolkits/build_metadata_scene.py script to create the scene-level metadata file:
python dataset_toolkits/build_metadata_scene.py 3D-FUTURE
--output_dir <path_to_3D-FUTURE>
--set <train or test>
--vggt_ckpt checkpoints/VGGT-1B --save_mask
This will generate a metadata_scene.csv file or a metadata_scene_test.csv file in the specified dataset directory.dataset_toolkits/build_scene.sh script to render scene image for each scene(with Blender installed and the configs in the script set correctly):
bash dataset_toolkits/build_scene.sh
This will create a scene_test_render folder in the dataset directory containing the rendered images of the test scenes with Blender, which will be further used for evaluation.With the processed 3D-FUTURE dataset and the pretrained ss_flow_img_dit_L_16l8_fp16.safetensors model checkpoint from TRELLIS correctly placed in the checkpoints/scenegen/ckpts directory, you can train SceneGen using the following command:
bash scripts/train.sh
For detailed training configurations, please refer to configs/generation/ss_scenegen_flow_img_train.json and change the parameters as needed.
To generate the 3D scenes on the 3D-FUTURE test set using the SceneGen model, use the following command:
bash scenegen_eval.sh
which will use the scenegen_eval.py script to generate the normalized scenes.
To evaluate the trained SceneGen model on the 3D-FUTURE test set, use the following command:
cd evalscene
bash eval_scenegen.sh
Make sure to have the processed 3D-FUTURE dataset and the rendered images in place as described in the Dataset section and the evaluation configs in evalscene/configs/test/scene_evaluation_scenegen.yaml set correctly. Then the evaluation script will compute metrics between the normalized generated scenes and the ground truth.
Some packages used in the evaluation require additional installation. Please install the packages: torchmetrics, lpips, clip, and probreg via pip.
If you use this code and data for your research or project, please cite:
@inproceedings{meng2026scenegen,
author = {Meng, Yanxu and Wu, Haoning and Zhang, Ya and Xie, Weidi},
title = {SceneGen: Single-Image 3D Scene Generation in One Feedforward Pass},
booktitle = {International Conference on 3D Vision 2026},
year = {2026},
}
Many thanks to the code bases from TRELLIS, DINOv2, and VGGT.
If you have any questions, please feel free to contact [email protected] and [email protected].
136 followers ยท starred Nov 2025
18 followers ยท starred Mar 2026
271 followers ยท starred Oct 2025
173 followers ยท starred Aug 2025
[3DV 2026] "SceneGen: Single-Image 3D Scene Generation in One Feedforward Pass"
See the codeThis repository contains the official PyTorch implementation of SceneGen: https://arxiv.org/abs/2508.15769/.
Now the Training, Inference Code, and Pretrained Models have all been released! Feel free to reach out for discussions!
Project Page $\cdot$ Paper $\cdot$ Checkpoints
Clone the repo:
git clone https://github.com/Mengmouxu/SceneGen.git
cd SceneGen
Install the dependencies:
Create a new conda environment named scenegen and install the dependencies:
. ./setup.sh --new-env --basic --xformers --flash-attn --diffoctreerast --spconv --mipgaussian --kaolin --nvdiffrast --demo
The detailed usage of setup.sh can be found by running . ./setup.sh --help.
mkdir -p checkpoints
checkpoints directory. (SAM2 installation and its checkpoints are required for interactive generation with segmentation.)checkpoints directory as follows:
SceneGen/
โโโ checkpoints/
โ โโโ sam2-hiera-large
โ โโโ VGGT-1B
โ โโโ scenegen
| โโโckpts
| โโโpipeline.json
โโโ ...
We provide two scripts for inference: inference.py for batch processing and interactive_demo.py for an interactive Gradio demo.
This script launches a Gradio web interface for interactive scene generation.
python interactive_demo.py
๐ Quick Start Guide
๐ท Step 1: Input & Segment
- Upload your scene image.
- Use the mouse to draw bounding boxes around objects.
- Click "Run Segmentation" to segment objects.
โป For multi-image generation: maintain consistent object annotation order across all images.
๐๏ธ Step 2: Manage Cache
- Click "Add to Cache" when satisfied with the segmentation.
- Repeat Steps 1-2 for multiple images.
- Use "Delete Selected" or "Clear All" to manage cached images.
๐ฎ Step 3: Generate Scene
- Adjust generation parameters (optional).
- Click "Generate 3D Scene".
- Download the generated GLB file when ready.
๐ก Pro Tip: Try the examples below to get started quickly!
https://github.com/user-attachments/assets/d0d53506-70cd-4bd3-a6ab-2f9b5b16f4d8
Click the image above to watch the demo video
This script processes a directory of pre-segmented images.
assets/masked_image_test, containing segmented scene images.--gradio flag to launch a Gradio interface that visualizes both the ground truth and the generated model. We provide data from the 3D-FUTURE test set as a demonstration.python inference.py --gradio
To train and evaluate SceneGen, we use the 3D-FUTURE dataset. Please download and preprocess the dataset as follows:
metadata.csv.dataset_toolkits/build_metadata_scene.py script to create the scene-level metadata file:
python dataset_toolkits/build_metadata_scene.py 3D-FUTURE
--output_dir <path_to_3D-FUTURE>
--set <train or test>
--vggt_ckpt checkpoints/VGGT-1B --save_mask
This will generate a metadata_scene.csv file or a metadata_scene_test.csv file in the specified dataset directory.dataset_toolkits/build_scene.sh script to render scene image for each scene(with Blender installed and the configs in the script set correctly):
bash dataset_toolkits/build_scene.sh
This will create a scene_test_render folder in the dataset directory containing the rendered images of the test scenes with Blender, which will be further used for evaluation.With the processed 3D-FUTURE dataset and the pretrained ss_flow_img_dit_L_16l8_fp16.safetensors model checkpoint from TRELLIS correctly placed in the checkpoints/scenegen/ckpts directory, you can train SceneGen using the following command:
bash scripts/train.sh
For detailed training configurations, please refer to configs/generation/ss_scenegen_flow_img_train.json and change the parameters as needed.
To generate the 3D scenes on the 3D-FUTURE test set using the SceneGen model, use the following command:
bash scenegen_eval.sh
which will use the scenegen_eval.py script to generate the normalized scenes.
To evaluate the trained SceneGen model on the 3D-FUTURE test set, use the following command:
cd evalscene
bash eval_scenegen.sh
Make sure to have the processed 3D-FUTURE dataset and the rendered images in place as described in the Dataset section and the evaluation configs in evalscene/configs/test/scene_evaluation_scenegen.yaml set correctly. Then the evaluation script will compute metrics between the normalized generated scenes and the ground truth.
Some packages used in the evaluation require additional installation. Please install the packages: torchmetrics, lpips, clip, and probreg via pip.
If you use this code and data for your research or project, please cite:
@inproceedings{meng2026scenegen,
author = {Meng, Yanxu and Wu, Haoning and Zhang, Ya and Xie, Weidi},
title = {SceneGen: Single-Image 3D Scene Generation in One Feedforward Pass},
booktitle = {International Conference on 3D Vision 2026},
year = {2026},
}
Many thanks to the code bases from TRELLIS, DINOv2, and VGGT.
If you have any questions, please feel free to contact [email protected] and [email protected].
136 followers ยท starred Nov 2025
18 followers ยท starred Mar 2026
271 followers ยท starred Oct 2025
173 followers ยท starred Aug 2025