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)

sound
Searching Database…

What is this?GenRainpy is a procedural rain and thunderstorm simulator built with Python, Pygame, NumPy and SciPy, generating parallax rainfall, fractal lightning, and real-time synthesized rain and thunder audio.
Is this a desktop app or a library I import into my own project?It is a standalone Pygame desktop application launched via a main script or module execution, not a library you import.
How do I get it running?Clone the repository, install its dependencies, and optionally install it in editable mode, then launch it via the main launcher or module execution.
What do I need installed to run it?Python plus the Pygame, NumPy and SciPy libraries for the simulation and procedural audio synthesis.
Do I need the GUI window open, or can I just generate an audio file?You can skip the GUI entirely: the -o/--export CLI flag generates and exports an ambient rain/thunder audio track directly without opening the simulator window.
What weather presets does it include?Five built-in presets - Drizzle, Steady Rain, Thunderstorm, Gale Storm, and Window Rain - selectable via CLI flags or number keys 1-5 inside the app.
Can I adjust the audio mix while it runs?Yes, live volume sliders for Master, Thunder, Rain Ambiance, Droplet Patters, and Wind are available through the Settings and Audio Mixer dialog (S or Tab).
How is the lightning effect generated?Lightning bolts use fractal midpoint-displacement branching combined with multi-phase sky illumination and camera shake, with thunder optionally delayed to simulate the speed of sound.
Is there a test suite?Yes, the project includes tests that can be run with pytest.
What are similar projects?GDevelop, Infinite, iw4L, Craft, Terrain3D, hypoarena, MonoGame, benilla
Size
11.3 MB
Stars
1.4K
Updated
CommitOct 28
Age
6d
Commits · 90 Days