https://github.com/cschladetsch/cpp23particles
Interactive particle system with multiple emitter types, dynamic force fields, and particle interactions using C++23 and SDL2. Explore colorful visual effects, and multithreaded physics simulation.
https://github.com/cschladetsch/cpp23particles
cmake cpp cpp23 particles sdl2
Last synced: 11 months ago
JSON representation
Interactive particle system with multiple emitter types, dynamic force fields, and particle interactions using C++23 and SDL2. Explore colorful visual effects, and multithreaded physics simulation.
- Host: GitHub
- URL: https://github.com/cschladetsch/cpp23particles
- Owner: cschladetsch
- Created: 2025-02-28T06:42:27.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-28T07:26:07.000Z (over 1 year ago)
- Last Synced: 2025-03-11T11:46:00.744Z (about 1 year ago)
- Topics: cmake, cpp, cpp23, particles, sdl2
- Language: C++
- Homepage:
- Size: 3.54 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Interactive Particle System
Interactive particle system with multiple emitter types, dynamic force fields, and particle interactions using C++23 and SDL2. Explore colorful visual effects, physics simulation, and multithreaded performance optimizations.
## Demo

## Features
- **Multiple Emitter Types**: Fountain, explosion, snow, spiral patterns
- **Interactive Controls**: Mouse-controlled force fields
- **Physics Simulation**: Gravity, attraction/repulsion, particle interactions
- **Visual Effects**: Dynamic colors, glowing force fields, rainbow mode
- **Optimized Performance**: Multithreaded, spatial partitioning
## Controls
- **Mouse**: Control force field position
- **Left Click**: Create burst at cursor
- **Space**: Toggle attraction/repulsion
- **F**: Toggle force field on/off
- **1-4**: Switch emitter types
- **C**: Toggle colorful mode
- **B**: Toggle dynamic background
- **I**: Toggle particle interaction
- **R**: Reset system
- **Q/ESC**: Quit
## Build and Run
```bash
# Create build directory
mkdir build && cd build
# Configure and build
cmake ..
make -j$(nproc)
# Run
./particle_system
```
## Requirements
- C++23 compatible compiler
- SDL2 development libraries
- CMake 3.16+