Maria’s Game of Life

 

Summary :

My project involves a simulation of Conway’s Game of Life.

The universe of the Game of Life is an infinite two-dimensional grid of square cells, each of which is in one of two possible states, alive or dead, or “populated” or “unpopulated”. Every cell interacts with its eight neighbors which are the cells that are horizontally, vertically, or diagonally adjacent. At each step in time, the following transitions occur:

  1. Any live cell with fewer than two live neighbors dies, as if caused by under-population.
  2. Any live cell with two or three live neighbors lives on to the next generation.
  3. Any live cell with more than three live neighbors dies, as if by overpopulation.
  4. Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.

The initial pattern constitutes the seed of the system. Applying the above rules simultaneously to every cell in the seed creates the first generation—births and deaths occur simultaneously, and the discrete moment at which this happens is sometimes called a tick (in other words, each generation is a pure function of the preceding one). The rules continue to be applied repeatedly to create further generations. (Wikipedia).

Conway’s Game of Life is significant for cross-disciplinary academics, as it is a relevant topic across various fields, such as computer science, mathematics, evolutionary computation and biology, to name a few.

The implementation of my project is in major part done programmatically via Vanilla JavaScript, and ran locally in a browser.

Although my code represents the visual translation of Conway’s four rules in his game, my overall project seeks to convey something more complex; the relationship between computer and nature.

The patterns displayed in my simulation which evolve based on the algorithm (Conway’s rules) can also be looked at from a perspective of population evolution; rise and fall of civilizations within a state of nature. We see according to the application of this algorithm the constant “life” and “death” among communities and populations and ultimately how vulnerable these populations are, vulnerable to the potential of stability, rise and fall based off only four simple rules.

The chaos from a simple four-step algorithm is displayed on the browser; the viewer can see constant change within “nature”. I personally found this unsettling; the uncertainty of nature within certain parameters, and perhaps what is even more unnerving is the uncertainty of nature in real life, not simply a computer screen simulation.

 

Which made me think, in the actual state of nature, (not my computer screen) do Conway’s rules apply?

I think the answer is fuzzy. Yes and no. Conway’s rules can apply in the actual state of nature, but I also believe nature can also be infinitely more complex. Conway’s Game of Life can’t account for external forces, which may disrupt the simulation of population’s rise and fall. By external forces, I’m referring to the potential of things like war and natural disaster, which play a role in the application of Conway’s rules, making things even more uncertain and volatile.

I attempt to account for these external forces in my code but implementing a JavaScript event “onmouseover” in which the mouse “disturbs” Conway’s algorithm. The mouse represents the uncertaintly of war and disaster, which may alter the nature of populations within the simulation of Conway’s rules.

 

Inspiration:

The inspiration for my project comes firstly from my appreciation for John Conway and his work in the field of computer science and mathematics; which is a passion of my own.

But it wasn’t until I watched Keith Downing’s TED Talk video on evolutionary computation, which inspired me to view my project as more than a mere “simulation”. Keith Downing made the point that computers and nature are much more similar than humanity initially imagined. He argued that computers and machines are actually heavily influenced by nature, which he refers to a “bio inspired design”. Accepting Prof. Downing’s argument, I was able to view my work as something intertwined with both computation and nature; whereas before I saw my project as purely computational with a front-end aesthetic. It was important to me to realize my project’s simulation was alive and real, just as it occurs in nature. Understanding my project as, “bio inspired design” broadened how I thought about Conway’s rules and how his algorithm applies to my both computer screen and the biological – physical world.

The final inspiration for my project, borrowing from the ideas of Conway and Downing, is the unseen forces that constantly impact Conways rules. As someone who reads the news everyday, the news app notifications I get sent to my phone inspired me greatly. I was inspired by the chaos of our own world, the constant news of attacks, murders, fires, technological advancement, medical discoveries etc. and I understood how these occurrences played out in the world, so I sought to represent these occurrences in my simulation; which I felt played an important role in making my project truly bio inspired design.

 

My Research :

Recapping my work:

Develop GOL in JS – refer to other public code and how they implemented the algorithm (some code references listed below)

https://github.com/ArturT/Game-of-Life-in-Java

https://github.com/fkling/Game-of-Life

https://github.com/pmav/game-of-life

Implementing the interactive element of my code relied on learning the onmouseover Event

https://www.w3schools.com/jsref/event_onmouseover.asp

https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onmouseover

Process:

The general process for my project involved getting the “hard part” out of the way first, which was programming and implementing GOL.

(snapshot of my original GOL code) ^

Once my code was running and debugged, I saw a perfectly fine screen running GOL . However I felt the visual expression of my “bio inspired design” was still semi – lacking so for the remainder of my “process” I added a gif to express through images “Maria’s Game of Life”, which is my understanding and interpretation of Conway’s rules and how unforeseen events play a role in my simulation. Giphy was the perfect platform to convey my message and heighten the visuals of my project.

https://giphy.com/create/gifmaker

(a few screenshots from the featured gif on my project)