Uma geração no jogo da vida

Poster A2. Fevereiro 2019. Silvino Martins, Tânia Ribeiro. UA.

Conceito:
O Universo está organizado numa grelha de duas dimensões.
Cada membro da população do Universo ocupa o seu espaço na grelha.
A morfologia de cada membro da população obedece a princípios de padronização filotática.
Qualquer membro da população vivo e com menos de dois vizinhos vivos, morre de solidão.
Qualquer membro da população vivo e com mais de três vizinhos vivos, morre por sobrepopulação.
Qualquer membro da população morto e com exatamente três vizinhos vivos, ressuscita.
Qualquer membro da população vivo e com dois ou três vizinhos vivos, continua vivo para a próxima geração.
Quando um membro morre, a sua marca é deixada para algumas das gerações seguintes antes de desvanecer por completo.

Estado da arte:
O poster aqui apresentado é um exercício onde se pretendeu tirar partido da estética proporcionada pelo algoritmo Conway’s Game of Life. No algoritmo original, os padrões gerados consistem numa grelha 2D composta por quadrados pretos e quadrados brancos. Na abordagem aqui apresentada, os quadrados pretos dão lugar a um padrão inspirado na natureza.

Conway’s Game of Life
O exercício levado a cabo teve como base o algoritmo “Game of Life” proposto pelo matemático John Horton Conway em 1970. 
O algoritmo é um exemplo de um autómato celular bidimensional que simula processos de evolução de células biológicas. Cada célula pode obter um de dois estados distintos, de acordo com um conjunto de regras.
O padrão inicial é a primeira geração. A segunda geração evolui após a aplicação das regras a todas as células da grelha em simultâneo, ou seja, “nascimentos” e “mortes” acontecem simultaneamente. Posteriormente, as regras são aplicadas iterativamente de forma a criar futuras gerações.

Phyllotaxis
Neste trabalho, cada célula “viva” apresenta o desenho de círculos dispostos em espiral que simulam o arranjo de folhas em algumas plantas. Esta disposição tem o nome de phyllotaxis (phýllon = "leaf" e táxis = "arrangement") e reproduz o comportamento de pétalas/folhas que tendem a estar dispostas sucessivamente num ângulo de cerca de 137.5º relativamente à anterior .

Algoritmo (simplificado):
Criação da grelha bidimensional (Fig. 2) e atribuição de um estado aleatório a cada célula da grelha (0 ou 1)

Desenho de uma espiral caso o estado de uma célula seja igual a 1 (Fig. 3)  

Em cada frame dá-se uma iteração. A iteração consiste em atualizar o estado das células de acordo com as regras estabelecidas (Fig. 5). Verifica-se o estado de cada célula e o número de vizinhos ativos, tendo em consideração os 8 vizinhos adjacentes a cada célula (Fig. 6).

A cada iteração o canvas é preenchido com a cor de fundo com uma ligeira opacidade. Desta forma, as espirais não são completamente varridas do canvas e consegue-se observar os estados anteriores (passagem do tempo)