
Conway's Game of Life, IN COLOR
Conway's Game of Life with color evolution: I enhanced the classic Conway's Game of Life by integrating a RGB-based coloring algorithm that dynamically changes the colors of the cells on each state. Implemented in Unity 2D/C#.
COMPILATION VIDEO
ALGORITHMS (under construction/pseudocode)

Color War Algorithm
Cell color is determined by whichever is greater: the sum of blue neighbors or the sum of the red neighbors.
Initial RGB input:
For each cell,
R: 0 or 1
G: 0
B: 1 - R
Blending:
For each cell, take the average of the neighboring RGB values.
R: 1 if red neighbors > blue neighbors, 0 otherwise.
G: 0
B: 1-R

Pure Blending Algorithm
Cells eventually blends into a single color.
Initial RGB input:
For each cell,
R: randomFloat(0, 1)
G: randomFloat2(0, 1)
B: 0
Blending:
For each cell, take the average of the neighboring RGB values.
R: avgR
G: avgG
B: avgB

Random Blending Algorithm
Cells keep blending, but randomness is added to prevent complete blending.
Initial RGB input:
For each cell,
R: randomFloat(0, 1)
G: randomFloat2(0, 1)
B: 1 - R
Blending:
For each cell, take the average of the neighboring RGB values.
R: avgR + randomFloat(-0.2, 0.2)
G: avgG + randomFloat(-0.3, 0.3)
B: avgB

Explosive Algorithm
Initial RGB input:
For each cell,
R: 1
G: randomFloat(0, 1)
B: 0
Blending:
For each cell, take the average of the neighboring RGB values.
R: min(avgR + randomFloat(-0.5, 0.5), 1)
G: min(avgG + randomFloat(-0.5, 0.5), 1)
B: 0
Initially, the problem was that the colors did not maintain its vividness and turned into dull brown-ish colors after multiple steps of blending (Shown in Prototype: right image below.)
Solution 1: Convert from RGB to HSV -> HSV lets us work with a more intuitive and visual color scaling. I maintained the brightness of the colors by setting the Value of HSV to be constantly higher than 0.5. (Shown in Prototype: left image below.)
Solution 2: In the Unity implementations, I introduced controlled "randomness" in the RGB values by limiting the variation to just one or two of the three color channels. This approach preserved the consistency and vibrancy of the colors throughout the simulation, resulting in a more visually stable outcome.
PROTOTYPES IN JAVA
FUTURE IMPLEMENTATIONS
I plan to explore and implement alternative grid structures, such as hexagonal, triangular, and 3D/cubic tilings.




