This is the official implementation of FLoD.
Yunji Seo*, Young Sun Choi*, Hyun Seung Son, Youngjung Uh
We introduce integrating a Flexible Level of Detail (FLoD) to 3DGS, to allow a scene to be rendered at varying levels of detail according to hardware capabilities.
Our code was tested Ubuntu 20.04.6 LTS, on conda environment installed with environment.yml and the submodules below.
git clone https://github.com/3DGS-FLoD/flod.git
cd flodSetup conda environment
conda env create -f environment.yml
conda activate flodClone submodules
git clone https://github.com/graphdeco-inria/diff-gaussian-rasterization submodules/diff-gaussian-rasterization
git clone https://gitlab.inria.fr/bkerbl/simple-knn.git submodules/simple-knnInstall dependencies
sudo apt install libglm-dev
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn- Trained on: a single RTX A5000 GPU with 24GB VRAM
- VRAM requirement: ~22GB VRAM is required for training of all scenes
- Tested on:
- a single RTX A5000 GPU with 24GB VRAM
- a single GTX 1080 GPU with 8GB VRAM
- a single GeForce MX250 GPU with 2GB VRAM (for laptop evaluations)
- VRAM requirement: ~3GB VRAM is required for full evaluation on all scenes
Average training duration per scene:
- DL3DV-10K: ~40min
- Mip-NeRF 360: ~80min
- Tanks and Temples: ~20min
To reproduce, run... (Links to datasets used in the paper: Mip-NeRF 360, Tanks&Temples, DL3DV-10K)
train.sh Render and evaluate by...
render.sh Pretrained FLoD-3DGS models are available in Hugging Face.
The pretrained models are organized in the pretrained_models/ directory with the following structure:
pretrained_models/
├── mipnerf360/
│ ├── bonsai/
│ ├── kitchen/
│ ├── counter/
│ └── ...
├── dl3dv/
│ ├── [hash1]/
│ ├── [hash2]/
│ └── ...
└── tnt/
├── truck/
└── train/
Each scene contains:
point_cloud/directory (model data)cfg_argsfile (configuration)
Important: Before running the pretrained models, you need to modify the cfg_args files:
-
Update source_path: Replace
{path-to-data}with the actual path to your dataset:source_path='{path-to-data}/mipnerf360/bonsai'Change to:
source_path='/path/to/your/mipnerf360/bonsai' -
Verify model_path: Should already be correct:
model_path='./pretrained_models/{dataset}/{scene}'
demo-garden.mp4
To run viewer as demonstrated on our project page
convert4viewer.sh
SIBR_viewers/install/bin/SIBR_flodViewer_app -m /path/to/your/modelWe build our code for FLoD on top of the open-source code of 3D Gaussian Splatting.
Hence our licencse follows graphdeco-inria/gaussian-splatting
We would like to express our gratitude to the authors of the 3D Gaussian Splatting.
Their work has laid the foundation for this research.
Our code is largely based on their open-source project: graphdeco-inria/gaussian-splatting
@article{seo2025flod,
author = {Yunji Seo and Young Sun Choi and Hyun Seung Son and Youngjung Uh},
title = {FLoD: Integrating Flexible Level of Detail into 3D Gaussian Splatting for Customizable Rendering},
journal = {ACM Transactions on Graphics (Proceedings of SIGGRAPH)},
number = {4},
volume = {44},
year = {2025},
doi = {10.1145/3731430}
}