YPLianGroup /
AMCA3D
AMCA3D (3D Cellular Automata method for Additive Manufacturing) is a parallel C++ program designed for modeling mesoscale grain structure evolution during the additive manufacturing process.
Loading repository data…
JannikNickel / repository
3D Cellular Automata in C++
Implementation of 3d cellular automata in C++20 as described in this article. A brief explanation of the rules is further down below.
The repo contains VS2022 solution and project files and uses C++20.
Dependencies are included in external/
Controls can be found in the top center of the window.
Some settings like the render and color settings can be changed after the simulation was prepared or is running. Others such as size, states or rules will be highlighted and can be applied by pressing the RESET button.
| SETTING | DESCRIPTION | VALUES |
|---|---|---|
| Size | The amount of cells on each axis | 5-100 |
| Render Mode | How each non empty cell is displayed | Quad, Cube, Point |
| Color Mode | How the color of each non empty cell is determined | Radius, XYZ, State |
| Gradient | The gradient that will be used to colorize the cells | Random, Random_2, Random_3, Random_4, Random_5, Grayscale, Grayscale_Reverse, Hue, Hue_Reverse |
| Fill Shape | In which shape the initial cells are filled | Cube, Sphere |
| Fill Diameter | The diameter of the Fill Shape that will be used to fill the initial cells | 1-Size |
| Fill Prob | The probability that a cell in the Fill Shape will be filled | 0-100% |
| Wrap Around | Determines whether the neighbours on the opposite side of the simulation cube will be counted or not | Yes, No |
| Steps/s | The amount of automatic simulation steps to run each second, if the play button was pressed | 0-60 |
| Neighbours | The method to calculate neighbours | Moore = 26 possible neighbours, VonNeumann = 6 possible neighbours |
| States | The amount of states each cell can have. 2 = on/off, 5 = 4 visible states + off | 2-64 |
| Survive Rule | Rule for cell survival (see below for more info) | List of comma separated numbers or ranges (1,2,3-5,7,10-12) |
| Spawn Rule | Rule for cell spawning (see below for more info) | List of comma separated numbers or ranges (1,2,3-5,7,10-12) |
For a more detailed explanation, I recommend this article.
state in [0, states)0 means the cell is empty and invisiblestate > 0 means the cell is visiblestate == states - 1 means the cell counts as neighbour to other cellsstate < states - 1 will decay every simulation step until the state is 0 and the cell empty/invisiblelist of values in [0, states)neighbours of each cell are countedstates - 1 and neighbours is in the list, the cell survives...state is decremented and decays every simulation step until the state is 0list of values in [0, states)neighbours of each cell are countedstate of 0 (it's empty) and neighbours is in the list, the cell state is set to states - 1 to spawn a new cellSelected from shared topics, language and repository description—not editorial ratings.
YPLianGroup /
AMCA3D (3D Cellular Automata method for Additive Manufacturing) is a parallel C++ program designed for modeling mesoscale grain structure evolution during the additive manufacturing process.
LelsersLasers /
3d Cellular Automata using Raylib in C++
heyitsguay /
A renderer for 3D Game of Life cellular automata, using OpenGL and C++
solzilberman /
:ice_cube: 3D CA in C++ using OpenGL, freeglut, glew
C-JeanDev /
The Game of Life implemented using Raylib in C provides a graphical simulation of Conway’s Game of Life. Raylib is a simple and efficient C library for creating 2D and 3D games, making it ideal for visualizing cellular automata like Life.
sebimih13 /
3D Cellular Automata made with OpenGL and C++