This project implements a particle system for the TU/e course Simulation in Computer Graphics, supporting multiple forces, constraints, integration schemes, collision objects, and interactive features. The goal of the project is to achieve visually convincing results while maintaining real-time performance.
For a detailed description of the implementation, experiments, and results, see the full report:
Simulation in Computer Graphics - Project 1 Report
Below are some example screenshots from various simulation scenes:
To build and run this project, you need the following:
- C++17 compatible compiler (e.g., g++, clang++)
- OpenGL development libraries
- GLUT
- libpng
Instructions are given here depending on operating system:
- Toggle simulation:
spacebar - Dump frames:
d - Quit application:
q - Toggle force visualization:
f - Switch to a given scene:
1-9 - Switch integration scheme:
- Euler:
e - Midpoint:
m - Runge Kutta:
r - Implicit Euler:
i(This does only work in scenes, that don't use any forces except Spring, Linear or QuadraticDrag)
- Euler:
- Apply spring force to particle: click and hold
left mouse button - Apply wind force: click and hold
right mouse button



