File size: 4,858 Bytes
5774135 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | ---
license: apache-2.0
---
<h2 align="center">
🌦️ WeatherEdit: Controllable Weather Editing with 4D Gaussian Field
</h2>
<p align="center">
<em>
<a href="https://jumponthemoon.github.io/">Chenghao Qian</a><sup>1,*</sup>,
<a href="https://scholar.google.com/citations?user=uBjSytAAAAAJ&hl=en">Wenjing Li</a><sup>1,†</sup>,
<a href="https://example.com/guo">Yuhu Guo</a><sup>2</sup>,
<a href="https://scholar.google.com/citations?user=55G7VxoAAAAJ&hl=en">Gustav Markkula</a><sup>1</sup>
</em>
</p>
<p align="center">
<img src="https://github.com/user-attachments/assets/4483e88e-4552-4245-9c29-2c84abf78788" alt="image" width="390">
</p>
<p align="center">
<a href="https://arxiv.org/abs/2505.20471">
<img src="https://img.shields.io/badge/arXiv-article-red" alt="arXiv">
</a>
<a href="https://jumponthemoon.github.io/w-edit">
<img src="https://img.shields.io/badge/Project-link-blue" alt="Project">
</a>
</p>
<p align="center">
A <strong>Controllable</strong>, <strong>Scalable</strong> and <strong>Efficient</strong> Framework for <strong>Realistic Weather Editing.</strong>
</p>
<div align="center">
<img src="https://github.com/user-attachments/assets/b2b46e74-010d-4d80-a153-e4561668cc0f" width="800"/>
</div>
<div align="center">
<img src="https://github.com/user-attachments/assets/e5b74e41-d25f-4a25-af42-99a95bcdb04e" width="800"/>
</div>
---
- 🎨 Flexible control over **weather types** (snow, fog, rain)
- 🌡️ Precise **weather severity** adjustment (light, moderate, heavy)
- 🖼️ **Global consistency** for multi-view driving scenes (temporal, spatial)
---
## 💡 The Quickiest Start
You can use our provided pretrained model for the easiest start. If you would like to try the whole pipeline, please go to the subfolder for training instructions
### A. General Weather (`General Scene/`)
Please first configure the environment with conda:
```bash
git clone https://github.com/Jumponthemoon/WeatherEdit.git
cd General_Scene
conda env create --file environment.yml
conda activate gaussian_splatting
```
We provide a complete pipeline to train and render Gaussian scenes with integrated weather effects.
#### 1. Train Your Scene
Download the Dataset Pt.1 from [Mip-NeRF 360](https://jonbarron.info/mipnerf360/) and put the `garden` under `data` folder, then run:
```bash
python train.py -s path/to/data/
```
After training, the model will be saved under `output` folder
#### 2. Render with Weather Effects
```bash
python render.py -m path/to/model --weather snow --fps 10
```
🔥 **Plug into your GS-based code?** 👉 Check it out [here](https://github.com/Jumponthemoon/WeatherEdit/tree/main/General_Scene)
---
### B. Driving Scene Editing (`Driving_Scene/`)
Please first clone the repo and configure the environment with conda:
```bash
git clone https://github.com/Jumponthemoon/WeatherEdit.git
cd Driving_Scene
conda create -n weatheredit python=3.9 -y
conda activate weatheredit
pip install -r requirements.txt
pip install git+https://github.com/nerfstudio-project/gsplat.git@v1.3.0
pip install git+https://github.com/facebookresearch/pytorch3d.git
pip install git+https://github.com/NVlabs/nvdiffrast
cd third_party/smplx/
pip install -e .
cd ../..
```
* Note: if you encounter error `ImportError: cannot import name 'cached_download' from 'huggingface_hub'`, please follow [this](https://github.com/easydiffusion/easydiffusion/issues/1851#issuecomment-2425265522) instruction.
#### 1. Download sample dataset & pretrained model
```bash
cd particle_construction
```
Download [sample dataset](https://drive.google.com/file/d/18qwNg_VVcwiyliLW1eDq488lRe8mdnuX/view?usp=sharing) and [pretrained model](https://drive.google.com/file/d/1vXz_-tPkwEU61jFrke9Io044An1j4Bv4/view?usp=sharing), then place them in the `data` and the `output` directory separately.
#### 2. Render with Weather Effects
Run the script to generate rainy weather in pandaset:
```bash
export PYTHONPATH=$(pwd)
python tools/gen_particle.py --resume_from ./output/pandaset/44/checkpoint_final.pth --weather rainy
```
The rendered video will be saved under `./output/pandaset/44/video_eval` folder
> ⭐ **If you like our work or find it useful, please give us a star or cite below. Thanks!**
---
## 📌 Citation
```bibtex
@article{qian2025wedit,
title={WeatherEdit: Controllable Weather Editing with 4D Gaussian Field},
author={Chenghao Qian and Wenjing Li and Yuhu Guo and Gustav Markkula},
year={2025},
eprint={2505.20471},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2505.20471},}
```
---
## 📬 Contact
For questions, suggestions, or collaborations:
- 📧 tscq@leeds.ac.uk
---
Thanks for your interest in WeatherEdit! We hope it helps bring new life to your 3D scenes 🌧️🌨️🌫️
|