a small implementation of a Cellular Automaton simulation engine, created out of boredom.
![]() |
![]() |
![]() |
![]() |
- Implemented the logic for any 2D automata.
- Implemented additional cellular automata.
- Optimized the logic with techniques such as bit manipulation.
- Autoplay feature with generation display.
- Zoom and move functionality for easy navigation and examination of large grids.
- Ability to change between different rulesets.
- Planned optimizations include parallel processing and hot reload for development.
The simulation engine is written in C, utilizing raylib for graphics rendering. The core logic is optimized using bit manipulation techniques to improve performance, especially for large grids.
- Clone the repository.
- Build the project with
make
. - Run with
./main
.
- Press spacebar to start/stop the simulation.
- Press H for a help menu.
- actually implement the logic for Conway's Game of Life.
- Further optimize the logic, including parallel processing.
- Investigate parallel processing for performance enhancements.
- Utilize bit manipulation for improved efficiency.
- autoplay and show gen
- add more cool Cellular automata
- add a way to change between the rules.
- hot reload for development? (Literally no reason other than it's a cool idea)
- add functionality to export simulations as GIFs or static images.
- implement controls for adjusting simulation rules dynamically during runtime.
- Implement features like customizable color schemes.
- add support for 1D automata
- adjust simulation parameters such as speed, cell size, and grid size.