rain_generator README

The project's README from github.com/AhmadHassan-BTed/rain_generator. As one markdown file: README.md.

GenRainpy - Rain and Thunderstorm Simulator

Python pygame License: MIT

A procedural rain and thunderstorm simulator built with Python, Pygame, NumPy, and SciPy. Features multi-layer parallax rainfall, particle splash physics, fractal branching lightning strikes, and real-time procedural audio synthesis.


Features


Installation

  1. Clone the repository:

    git clone https://github.com/azuletto/rain_generator.git
    cd rain_generator
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. (Optional) Install in editable mode:

    pip install -e .
    

Usage

Run via the main launcher:

python thunderstorm_simulator.py

Or via module execution:

python -m rain_generator

CLI Arguments

python -m rain_generator --preset thunderstorm --fullscreen
python -m rain_generator --preset drizzle --mute -W 1280 -H 720

Available options:

Audio Track Export

Generate an ambient audio file of any custom length (e.g. 2 minutes of thunderstorm audio):

python thunderstorm_simulator.py --duration 120 --export thunderstorm_2m.wav --preset thunderstorm

You can also click the Export Audio button in the top HUD (or press G) while running the simulator to open the interactive generator dialog.


Controls & Keybindings

Key Action
F / F11 Toggle Fullscreen mode
Space Pause / Resume simulation
M Mute / Unmute audio
G Open Audio Track Generator dialog
H Toggle HUD visibility
L Trigger manual lightning bolt and thunder
1 - 5 Switch presets (1: Drizzle, 2: Steady, 3: Storm, 4: Gale, 5: Window)
S / Tab Open Settings and Audio Mixer dialog
? / / Open Keybindings help dialog
Esc Close open dialog or exit simulation

Testing

Run the test suite using pytest:

pytest

License

This project is licensed under the MIT License. See LICENSE for details.

rain_generator (AhmadHassan-BTed/rain_generator)

Searching Database…

A procedural rain and thunderstorm simulator built with Python, Pygame, NumPy, and SciPy. Features multi-layer parallax rainfall, particle splash physics, fractal branching lightning strikes, and real-time procedural audio synthesis.

Size
11.3 MB
Stars
1.2K
Updated
CommitOct 28
Age
4d
Commits · 90 Days