🔬 Key Features
- Dynamic Virus Behavior: Viruses have customizable infection, death, and revival rates. Each strain is visualized in its own color.
- Mutation System: Once a strain reaches a critical infection count, it may mutate into a new strain with different properties and visuals.
- Cellular Recovery: Dead cells can be revived by nearby healthy cells depending on strain revival rate.
- Multithreading: Simulation logic and rendering are executed in parallel using pthread for smooth performance.
- Mutation FX: Visual feedback for mutation events (e.g. flashes, color shifts).
- Restart Button: Instantly reset the simulation for new randomized behavior.
📊 Simulation Overview
Each cell in the grid can be in one of three states:
- Healthy
- Infected
- Dead
Infected cells attempt to infect neighboring healthy cells. After a set recovery time, infected cells either die or return to a healthy state — depending on the virus strain parameters.
🛠️ Tech Stack
- Language: C
- Graphics: SDL2, SDL2_ttf
- Concurrency: pthread
- Build: Makefile-based