Setup

April 2, 2026 ยท View on GitHub

EAGS-SLAM: Edge-Assisted Gaussian Splatting SLAM

Webpage Paper CUDA GPLv3

Key Features

  • Coarse-to-Fine Tracking: Combining edge-based visual odometry and gaussian tracking to reduce tracking time
  • Edge-Assisted Gaussian Seeding: Using edge information for gaussian seeding to improve rendering quality
  • Parallel Loop Closure: Optimized the submap system to run loop closure in parallel, improving system speed

Setup

The code has been tested on: Ubuntu 20.04 LTS, Python 3.10.15, CUDA 12.1, RTX 4090

Install OpenCV 3.4 with contrib follow the instruction in OpenCV. Then modify VO/CMakeLists.txt.

Clone code:

git clone --depth 1 --recursive https://github.com/EnderMandS/EAGS-SLAM.git
cd EAGS-SLAM

Make sure that gcc and g++ paths on your system are exported (fine them using which gcc):

export CC=<gcc path>
export CXX=<g++ path>

Setup conda environment:

conda create -n eags -c nvidia/label/cuda-12.1.0 cuda=12.1 cuda-toolkit=12.1 cuda-nvcc=12.1
conda env update --file environment.yml --prune
conda activate eags
pip install -r requirements.txt
cd thirdparty/Hierarchical-Localization
python -m pip install -e .
cd ../..

Build VO:

cd VO
mkdir -p build && cd build
cmake ..
make -j
cd ../..

Datasets

For Replica and TUM RGB-D:

  git lfs install
  cd path/to/datasets
  git clone https://huggingface.co/datasets/voviktyl/Replica-SLAM
  git clone https://huggingface.co/datasets/voviktyl/TUM_RGBD-SLAM

For downloading ScanNet, follow the procedure described on here. Pay attention! There are some frames in ScanNet with inf poses, we filter them out using scripts/scannet_preprocess.py. Please change the path to your ScanNet data and run the cells.

Usage

For a single scene:

python run_slam.py configs/<dataset_name>/<config_name> --input_path <path_to_the_scene> --output_path <output_path>
# example
python run_slam.py configs/TUM_RGBD/rgbd_dataset_freiburg1_desk.yaml | tee log/tum/desk_0.log

You can also configure input and output paths in the config yaml file.

For all scenes:

./reproducing.sh

For headless running, please config the plot_backend before running:

evo_config set plot_backend agg

If you are running it for the first time, it may take some time to download the model.

Citation

@ARTICLE{EAGSSLAM,
  author={Mo, Hongle and Zhao, Zifeng and Lu, Yansen and Peng, Li and Liu, Dongmei and Tang, Shaomin and Xu, Bingquan and Qiu, Jian and Han, Peng and Luo, Kaiqing},
  journal={IEEE Sensors Journal}, 
  title={EAGS-SLAM: Edge-Assisted Gaussian Splatting SLAM}, 
  year={2026},
  volume={26},
  number={7},
  pages={10552-10561},
  doi={10.1109/JSEN.2026.3663321}
}