LiDAR fog simulation

Created by Martin Hahner at the Computer Vision Lab of ETH Zurich.

This is the official code release of the paper
Fog Simulation on Real LiDAR Point Clouds for 3D Object Detection in Adverse Weather
by Martin Hahner, Christos Sakaridis, Dengxin Dai, and Luc van Gool, accepted at ICCV 2021.



├── file_lists                          # contains file lists for
│   └── ...
├── integral_lookup_tables              # contains lookup tables to speed up the fog simulation
│   └── ... 
├──                      # to extract real fog noise* from the SeeingThroughFog dataset
├──                   # to augment a clear weather pointcloud with artificial fog (used during training)
├──   # to precompute the integral inside the fog equation
├──                # to visualize entire point clouds of different datasets with the option to augment fog into their scenes
└──                           # to visualize the theory behind a single LiDAR beam in foggy conditions

* Contains returns not only from fog, but also from physical objects that are closeby.

Datasets supported by


This software is made available for non-commercial use under a Creative Commons License.

A summary of the license can be found here.


This work is supported by Toyota via the TRACE project.

Furthermore, we would like to thank the authors of SeeingThroughFog for their great work.

In this repository, we use a fork of their original repository to visualize annotations and compare to their fog simulation. Their code is licensed via the MIT License.


If you find this work useful, please consider citing our paper.

  author = {Hahner, Martin and Sakaridis, Christos and Dai, Dengxin and Van Gool, Luc},
  title = {Fog Simulation on Real LiDAR Point Clouds for 3D Object Detection in Adverse Weather},
  booktitle = {IEEE International Conference on Computer Vision (ICCV)},
  year = {2021},

Getting Started


  1. Install anaconda.

  2. Create a new conda environment.

conda create --name foggy_lidar python=3.9 -y
  1. Activate the newly created conda environment.
conda activate foggy_lidar
  1. Install all necessary packages.
conda install matplotlib numpy opencv pandas plyfile pyopengl pyqt pyqtgraph quaternion scipy tqdm -c conda-forge -y
pip install pyquaternion
  1. Clone this repository (including submodules).
git clone [email protected]:MartinHahner/LiDAR_fog_sim.git --recursive
cd LiDAR_fog_sim


How to run the script that visualizes the theory behind a single LiDAR beam in foggy conditions:



How to run the script that visualizes entire point clouds of different datasets:

python -d <path_to_where_you_store_your_datasets>


You may also have to adjust the relative paths in (right at the beginning of the file) to be compatible with your datasets relative folder structure.


The code has been successfully tested on

  • Ubuntu 18.04.5 LTS
  • macOS Big Sur 11.2.1
  • Debian GNU/Linux 9.13

using conda 4.9.2.


Please feel free to suggest improvements to this repository.

We are always open to merge usefull pull request.