Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/imd10/cs341-rainy-day


https://github.com/imd10/cs341-rainy-day

Last synced: 23 days ago
JSON representation

Awesome Lists containing this project

README

        

# Interactive Rain Simulation with Waves 🌧️
![image](https://i.pinimg.com/originals/41/a7/f3/41a7f3eada3c52ea4403fdfc12c6b4f3.gif)

An engaging computer graphics project that simulates interactive rain, dynamic water waves, and a visually enriched environment. Built using **OpenGL**, this project showcases concepts of real-time graphics rendering, animations, and user interaction.

## Features
- **Dynamic Rain**: Raindrops fall interactively when dragging the mouse.
- **Floating Boat**: A boat oscillates naturally with the water waves.
- **Wave Animation**: Smooth, continuous wave motion that reacts to water height.
- **Interactive Environment**:
- A house, trees, clouds, and a mountain as background elements.
- A dynamically rising water level affected by rain.
- **Weather System**:
- Realistic water ripples and splashes as rain hits the surface.
- Clouds move across the sky to simulate natural motion.

## Technologies Used
- **C++**: Core programming language.
- **OpenGL**: Graphics library for rendering and animation.

## How to Use
1. Clone the repository:
```bash
git clone https://github.com/iMD10/CS341-Rainy-Day.git
cd CS341-Rainy-Day
2. Compile the main program (RainyDay.cpp) using your C++ compiler with OpenGL support:
```bash
g++ -o rainy_day RainyDay.cpp -lGL -lGLU -lglut
```
3. Run the program:
```bash
./rainy_day
```
4. Interact with the simulation:
- Drag the mouse to generate rain dynamically.
- Observe the rising water level and wave animations.
- Watch the boat float and oscillate with the waves.

## Learning Objectives
This project is part of a Computer Graphics Course to explore:

- Real-time rendering using OpenGL.
- Animation techniques such as sine wave motion.
- User interaction to trigger dynamic simulations.
- Building immersive environments with natural elements like rain, water, and waves.
## Screenshot
![image](https://github.com/user-attachments/assets/cca7a8ee-673b-4df0-b913-4ea0e18cd90d)