This is a project created for my graduation work at Howest University of Applied Sciences in the major Game Development. This was in collaboration with KULeuven.
This project was created to see if we could simulate a heart pulse going through a 3D volumetric mesh using cellular automata as opposed to the currently mainly used differential equations. Cellular automata is a system that uses a grid of cells, where each cell has a certain state. Depending on the state of one cell's neighboring cells, that cell might change to a different state. The given rule-set determines what state the cell is going to change in to. One of the most famous examples of an application of cellular automata is Conway's Game of Life, which is one of the first projects I created in the custom framework I made. This is a "Glider Cannon" created in my version of Conway's Game of Life. It's a device that creates the smaller tiny airplane-like objects flying to the bottom-right of the screen. In this project the cellular automata is applied in such a way that the vertices of the mesh are considered the cells and can be either 1 of 3 given states. The states correspond to the phases a pulse can be in:
The framework I used is a custom made framework that I made for this project. It's created in C++. I have 2 renderers implemented, one using SDL2 (mainly for 2D rendering) while the other one uses DirectX 11 alongside legacy DirectX effects. The math library I used was GLM. For the drawing of the GUI I used Dear ImGUI, which I used a lot for triggering functions and putting in data. The main class is the "Application" class that initializes the entire program and handles the update loop. This class also contains a "Renderer" class which is used to draw to the screen. Checking the states and changing them is handled on the CPU, while the drawing and rendering is handled on the GPU with the help of DirectX.