FLoD: Integrating Flexible Level of Detail into 3D Gaussian Splatting for Customizable Rendering
September 1, 2025 · View on GitHub
This is the official implementation of FLoD.
Yunji Seo*, Young Sun Choi*, Hyun Seung Son, Youngjung Uh
Overview
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.
Installation
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 flod
Setup conda environment
conda env create -f environment.yml
conda activate flod
Clone 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-knn
Install dependencies
sudo apt install libglm-dev
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn
Hardware Requirements
Training
- Trained on: a single RTX A5000 GPU with 24GB VRAM
- VRAM requirement: ~22GB VRAM is required for training of all scenes
Evaluation/Inference
- 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
Training Duration
Average training duration per scene:
- DL3DV-10K: ~40min
- Mip-NeRF 360: ~80min
- Tanks and Temples: ~20min
Training and Evaluation
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 Models
Pretrained FLoD-3DGS models are available in pretrained_models.zip.
Using Pretrained Models
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}'
Viewer(Demo on Laptop, GeForce MX250)
https://github.com/user-attachments/assets/04de9f26-b25d-4aa9-bed8-5fd3060f0b49
To run viewer as demonstrated on our project page
convert4viewer.sh
SIBR_viewers/install/bin/SIBR_flodViewer_app -m /path/to/your/model
Licencse
We build our code for FLoD on top of the open-source code of 3D Gaussian Splatting.
Hence our licencse follows graphdeco-inria/gaussian-splatting
Acknowledgement
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
Citation
@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}
}