This repository contains the implementation of following paper:
EGG-Fusion: Efficient 3D Reconstruction with Geometry-aware Gaussian Surfel on the Fly
SIGGRAPH ASIA 2025, HongKong
Xiaokun Pan1, Zhenzhe Li1, Zhichao Ye2, Hongjia Zhai1, Guofeng Zhang1
1 State Key Lab of CAD&CG, Zhejiang University 2SenseTime Research
(Corresponding authors: Guofeng Zhang and Zhichao Ye)
EGG-Fusion is a real-time 3D reconstruction system leverages geometry-aware Gaussian surfels for real-time dense mapping and tracking. Currently, the repository only contains the code for core system, and it will be gradually updated and improved in the near future:
- Code of System Implementation
- Realtime Visualzation
- Evaluation Scripts
- Online Mode for RGB-D Sensor
Prerequisites
We have tested the code on:
- Ubuntu 20.04
- Python 3.9
- PyTorch 2.5.1+cu121
Clone Repository
git clone --recursive https://github.com/panxkun/eggfusion.gitInstall Dependencies
conda create -n eggfusion python=3.9
conda activate eggfusion
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txtBuild Submodules
- Build cuda extension for dense tracking
cd src/utils/cuda
pip install --no-build-isolation .
- Build cuda extension for diff-gaussian-surfel
cd submodules/diff-gaussian-surfels
pip install --no-build-isolation .
- Build ORB-SLAM2 dependencies
./submodules/orb-slam-deps/build_orb.sh
please refer to this link for more details if you occured problem while installing.
Directory Structure
Place your datasets in the datasets/ folder:
Show dataset directory structure
datasets/
├── replica/
├── tum/
├── scannetpp/
├── 39f36da05b
├── 8b5caf3398
├── f34d532901
└── 8b5caf3398
In this data structure, replica/ and tum/ contains the same scenes as used in SplaTAM.
Supported Datasets
- Replica: High-quality synthetic RGB-D sequences. Download from Replica
- TUM RGB-D: Real-world RGB-D benchmark sequences. Download from TUM
- ScanNet++: Large-scale indoor RGB-D dataset. Download from ScanNet
# Run on Replica dataset as an example
python main.py --config configs/replica/office0.yamlCurrently, we test this mode on the Azure Kinect dataset. Please refer to Azure Kinect documentation for setup. If you want to configure other RGB-D cameras, you can setup the camera driver and override the RGBDDataset class in the dataloader.
Note: This part of the code is not yet fully organized. We recommend using the Azure Kinect for online mode as it provides high-quality depth data and is well-supported.
This project is built upon several open-source projects and libraries. We thank the authors for their contributions:
EGG-Fusion is licensed under the Apache License - see the LICENSE file for details.
If you found this code/work to be useful in your own research, please considering citing the following:
@inproceedings{pan2025egg,
title={EGG-Fusion: Efficient 3D Reconstruction with Geometry-aware Gaussian Surfel on the Fly},
author={Pan, Xiaokun and Li, Zhenzhe and Ye, Zhichao and Zhai, Hongjia and Zhang, Guofeng},
booktitle={Proceedings of the SIGGRAPH Asia 2025 Conference Papers},
pages={1--12},
year={2025}
}
