Chong Xia1,2,*,
Kai Zhu1,*,
Zizhuo Wang1,
Fangfu Liu1,
Zhizheng Zhang2,
Yueqi Duan1,†
1Tsinghua University
2Galbot

SimRecon: We propose SimRecon,a novel compositional scene reconstruction framework that implements a "Perception-Generation-Simulation" pipeline with specialized bridging modules to ensure high visual fidelity and physical plausibility.

The overall framework of our approach SimRecon. We propose a “Perception-Generation-Simulation” pipeline with object-centric scene representations towards compositional 3D scene reconstruction from cluttered video input. In this figure, we provide illustrative visualizations using the backpack as the example to introduce our two core modules: Active Viewpoint Optimization (AVO) and Scene Graph Synthesizer (SGS). There, we visualize a semantic-level graph for clarity, while our framework operates at the instance-level.
git clone https://github.com/xiac20/SimRecon.git
cd SimRecon
conda create -n simrecon python=3.9 -y
conda activate simrecon
pip install torch==2.1.0+cu118 torchvision==0.16.0+cu118 torchaudio==2.1.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
pip install --extra-index-url=https://pypi.nvidia.com "cudf-cu11==24.2.*" "cuml-cu11==24.2.*"
pip install -r requirements.txt
Install CropFormer for instance-level segmentation.
cd semantic_modules/CropFormer
cd mask2former/modeling/pixel_decoder/ops
sh make.sh
cd ../../../../
git clone git@github.com:facebookresearch/detectron2.git
cd detectron2
pip install -e .
pip install git+https://github.com/cocodataset/panopticapi.git
pip install git+https://github.com/mcordts/cityscapesScripts.git
cd ..
pip install -r requirements.txt
pip install -U openmim
mim install mmcv
pip install transformers
mkdir ckpts
Manually
download CropFormer checkpoint
into semantic_modules/CropFormer/ckpts
Please follow the steps below to process your custom dataset, or directly download our preprocessed datasets.
Follow the original repository from COLMAP or HLOC to get sparse reconstruction results. For scenes with poor image quality and severe occlusion, we strongly recommend using HLOC or other state-of-the-art methods to complete sparse reconstruction.
cd semantic_modules/CropFormer
bash run_segmentation.sh "$DATA_DIR"
cd ../..
python train_2dgs.py -s data/scene0000_00 -m output/scene0000_00
Put the trained point_cloud.ply file into the $DATA_DIR directory. After successfully executing the above steps, the
data directory should be structured as follows:
data
|——————scene0000_00
|——————point_cloud.ply
|——————images
|——————0.jpg
...
|——————sam
|——————mask
|——————0.png
...
|——————sparse
|——————0
|——————cameras.bin
...
We provide three example scenes to help you get started.
python train_semantic.py -s data/scene0000_00 \
-m train_semanticgs \
--use_seg_feature --iterations 2500 \
--load_filter_segmap --consider_negative_labels
DBScan Filter Stage, since the backgrount gaussian points may be divided into multi-regions.--consider_negative_labels to suppress floaters during background segmentation.python optimize_by_avo.py --source_path data/scene0000_00 --label_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500 --max_iterations 100
--instance_id to specify the optimized object number. If not specified all objects will be optimized.Users can generate 3D assets by leveraging the optimized best views. For our pipeline we utilized the Rodin model. Users can proceed to their official website to generate the assets directly. We also highly recommend using available open-source Image-to-3D models such as SAM3D or Trellis to achieve similar results and reproduce the pipeline.
python coverage_sampling.py --scene_path data/scene0000_00 --num_frames 20 --copy_images
python project_instances_to_frames.py --source_path data/scene0000_00 --label_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500 --sampled_images_dir data/scene0000_00/sampled_images
python infer_scene_graph.py --instance_project_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500/instance_project --output_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500/scene_graphs
python merge_scene_graphs.py --scene_graphs_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500/scene_graphs
We are thankful for the following great works when implementing SimRecon:
@misc{xia2026simreconsimreadycompositionalscene,
title={SimRecon: SimReady Compositional Scene Reconstruction from Real Videos},
author={Chong Xia and Kai Zhu and Zizhuo Wang and Fangfu Liu and Zhizheng Zhang and Yueqi Duan},
year={2026},
eprint={2603.02133},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2603.02133},
}
12 commits
Python
82.5%
Cuda
10.0%
C++
6.0%
Chong Xia1,2,*,
Kai Zhu1,*,
Zizhuo Wang1,
Fangfu Liu1,
Zhizheng Zhang2,
Yueqi Duan1,†
1Tsinghua University
2Galbot

SimRecon: We propose SimRecon,a novel compositional scene reconstruction framework that implements a "Perception-Generation-Simulation" pipeline with specialized bridging modules to ensure high visual fidelity and physical plausibility.

The overall framework of our approach SimRecon. We propose a “Perception-Generation-Simulation” pipeline with object-centric scene representations towards compositional 3D scene reconstruction from cluttered video input. In this figure, we provide illustrative visualizations using the backpack as the example to introduce our two core modules: Active Viewpoint Optimization (AVO) and Scene Graph Synthesizer (SGS). There, we visualize a semantic-level graph for clarity, while our framework operates at the instance-level.
git clone https://github.com/xiac20/SimRecon.git
cd SimRecon
conda create -n simrecon python=3.9 -y
conda activate simrecon
pip install torch==2.1.0+cu118 torchvision==0.16.0+cu118 torchaudio==2.1.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
pip install --extra-index-url=https://pypi.nvidia.com "cudf-cu11==24.2.*" "cuml-cu11==24.2.*"
pip install -r requirements.txt
Install CropFormer for instance-level segmentation.
cd semantic_modules/CropFormer
cd mask2former/modeling/pixel_decoder/ops
sh make.sh
cd ../../../../
git clone git@github.com:facebookresearch/detectron2.git
cd detectron2
pip install -e .
pip install git+https://github.com/cocodataset/panopticapi.git
pip install git+https://github.com/mcordts/cityscapesScripts.git
cd ..
pip install -r requirements.txt
pip install -U openmim
mim install mmcv
pip install transformers
mkdir ckpts
Manually
download CropFormer checkpoint
into semantic_modules/CropFormer/ckpts
Please follow the steps below to process your custom dataset, or directly download our preprocessed datasets.
Follow the original repository from COLMAP or HLOC to get sparse reconstruction results. For scenes with poor image quality and severe occlusion, we strongly recommend using HLOC or other state-of-the-art methods to complete sparse reconstruction.
cd semantic_modules/CropFormer
bash run_segmentation.sh "$DATA_DIR"
cd ../..
python train_2dgs.py -s data/scene0000_00 -m output/scene0000_00
Put the trained point_cloud.ply file into the $DATA_DIR directory. After successfully executing the above steps, the
data directory should be structured as follows:
data
|——————scene0000_00
|——————point_cloud.ply
|——————images
|——————0.jpg
...
|——————sam
|——————mask
|——————0.png
...
|——————sparse
|——————0
|——————cameras.bin
...
We provide three example scenes to help you get started.
python train_semantic.py -s data/scene0000_00 \
-m train_semanticgs \
--use_seg_feature --iterations 2500 \
--load_filter_segmap --consider_negative_labels
DBScan Filter Stage, since the backgrount gaussian points may be divided into multi-regions.--consider_negative_labels to suppress floaters during background segmentation.python optimize_by_avo.py --source_path data/scene0000_00 --label_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500 --max_iterations 100
--instance_id to specify the optimized object number. If not specified all objects will be optimized.Users can generate 3D assets by leveraging the optimized best views. For our pipeline we utilized the Rodin model. Users can proceed to their official website to generate the assets directly. We also highly recommend using available open-source Image-to-3D models such as SAM3D or Trellis to achieve similar results and reproduce the pipeline.
python coverage_sampling.py --scene_path data/scene0000_00 --num_frames 20 --copy_images
python project_instances_to_frames.py --source_path data/scene0000_00 --label_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500 --sampled_images_dir data/scene0000_00/sampled_images
python infer_scene_graph.py --instance_project_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500/instance_project --output_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500/scene_graphs
python merge_scene_graphs.py --scene_graphs_dir output/data/scene0000_00/train_semanticgs/point_cloud/iteration_2500/scene_graphs
We are thankful for the following great works when implementing SimRecon:
@misc{xia2026simreconsimreadycompositionalscene,
title={SimRecon: SimReady Compositional Scene Reconstruction from Real Videos},
author={Chong Xia and Kai Zhu and Zizhuo Wang and Fangfu Liu and Zhizheng Zhang and Yueqi Duan},
year={2026},
eprint={2603.02133},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2603.02133},
}
12 commits
Python
82.5%
Cuda
10.0%
C++
6.0%