Flash-Splat: 3D Reflection Removal with Flash Cues and Gaussian Splats

December 2, 2025 · View on GitHub

​ Code for the ECCV 2024 paper "Flash-Splat: 3D Reflection Removal with Flash Cues and Gaussian Splats".
Project Page | PDF | supplement | Poster

Installation

We test our code with Torch 1.12 and CUDA 11.7 on an NVIDIA RTX A6000 GPU. Before you start installation, please ensure that your working environment has access to an NVIDIA GPU with CUDA installed. Please follow the following steps to set up the environment:

git clone https://github.com/mingyangx/flash-splat.git
cd flash-splat
conda env create --file environment.yml
conda activate flash-splat

Data Preparation

Please download our captured Multi-view Flash/no-flash Dataset from Google Drive. This folder also contains the corresponding camera poses and point cloud initilizations generated by COLMAP.

If you would like to run COLMAP on the Multi-view Flash/no-flash Dataset yourself, please follow the relevant instructions from FSGS on how to use COLMAP.

Run Flash-Splat

Please run the following command to perform 3D reflection separation:

python main.py --data_dir DATASET_DIRECTORY

If you have a Weights & Biases account and want to log your training results onto it, please run

python main.py --data_dir DATASET_DIRECTORY --turn_on_wandb

The GIFs of the separated transmitted 3D scene and the reflected 3D scene are stored in demo/ by default, and checkpoints can be found in experiments/.