Simulador de Autômatos Celulares

Pinte células, execute a simulação, retroceda o histórico e compare regras simples.

Os resultados são calculados automaticamente conforme você informa os dados.

Arraste para pintar células. Mantenha Alt pressionado ou selecione Apagar para apagá-las.

▼ Veja explicações e dicas abaixo ▼

O que é um autômato celular?

Um autômato celular é uma grade de células simples que mudam ao longo de uma série de passos discretos chamados gerações. Cada célula tem um estado, como viva ou morta, e o próximo estado de cada célula é determinado por uma regra que considera apenas uma pequena vizinhança local.

A ideia central é que regras locais simples podem produzir um comportamento global surpreendentemente rico. Algumas células vivas podem desaparecer, se acomodar em uma forma estável, repetir-se em um ciclo, mover-se pela grade ou produzir um padrão de aparência irregular. É por isso que os autômatos celulares são úteis para explorar a emergência: padrões em grande escala que surgem de interações em pequena escala.

Autômatos celulares são modelos abstratos. Eles não descrevem automaticamente um sistema físico real, mas oferecem a estudantes, programadores e pesquisadores uma maneira clara de experimentar com espaço discreto, tempo discreto, regras locais e formação de padrões.

Este simulador se concentra em duas famílias comuns:

  • Regras bidimensionais semelhantes ao Jogo da Vida, em que cada célula quadrada considera suas oito vizinhas ao redor.
  • Regras elementares unidimensionais, em que cada célula considera a si mesma e suas vizinhas à esquerda e à direita para gerar a próxima linha.

Por que os autômatos celulares são importantes

Os autômatos celulares são valiosos porque tornam a complexidade visível. Em vez de começar com uma equação longa para o sistema inteiro, um autômato celular começa com uma regra pequena e deixa o sistema evoluir passo a passo.

Isso torna os autômatos celulares úteis para:

  • aprender como interações locais podem criar padrões globais;
  • comparar ordem, repetição, crescimento, decaimento e aleatoriedade aparente;
  • introduzir ideias de matemática discreta, ciência da computação, simulação e sistemas dinâmicos;
  • experimentar com modelos baseados em regras antes de passar a simulações científicas mais detalhadas.

Eles também são um bom lembrete de que uma regra pode ser fácil de enunciar, mas difícil de prever. Em muitos autômatos celulares, a maneira mais confiável de saber o que acontece depois de muitas gerações é executar a regra e observar a evolução.


Termos importantes

  • Célula: uma posição na grade. Neste simulador, cada célula é binária: ativa/viva é \(1\), e inativa/morta é \(0\).
  • Geração: uma atualização completa da grade ou da linha.
  • Vizinhança: as células próximas usadas para decidir o próximo estado de uma célula.
  • Vizinhança de Moore: as oito células ao redor em uma grade quadrada: vizinhas horizontais, verticais e diagonais.
  • Nascimento: uma célula morta fica viva na geração seguinte.
  • Sobrevivência: uma célula viva continua viva na geração seguinte.
  • Morte: uma célula viva fica morta na geração seguinte.
  • Densidade: a porcentagem de células ativas.
  • Semente: o padrão inicial antes do começo da simulação.
  • Condição de contorno: como a simulação trata as células na borda de uma grade finita.
  • Regra elementar: uma regra de autômato celular binário unidimensional codificada por um número inteiro de \(0\) a \(255\).

Como funcionam os autômatos celulares

Um autômato celular atualiza todas as células aplicando a mesma regra ao mesmo tempo. Essa atualização simultânea é importante. Novos nascimentos não influenciam outros nascimentos na mesma geração; eles só afetam as gerações seguintes.

Regras de nascimento e sobrevivência semelhantes ao Jogo da Vida

Em uma regra semelhante ao Jogo da Vida, cada célula tem oito vizinhas possíveis. Uma regra escrita como B3/S23 significa:

  • B3: uma célula morta nasce quando tem exatamente \(3\) vizinhas vivas;
  • S23: uma célula viva sobrevive quando tem exatamente \(2\) ou \(3\) vizinhas vivas;
  • em todos os outros casos, a célula fica ou continua morta.

De modo mais geral, seja \(B\) o conjunto de contagens de vizinhas que causam nascimento, e seja \(S\) o conjunto de contagens de vizinhas que permitem a sobrevivência. Seja \(x_{i,j}^t\) o estado da célula na linha \(i\), coluna \(j\) e geração \(t\), em que \(1\) significa viva e \(0\) significa morta. Seja \(n_{i,j}^t\) o número de vizinhas vivas ao redor dessa célula.

O próximo estado é:

$$ x_{i,j}^{t+1}= \begin{cases} 1, & x_{i,j}^{t}=0 \text{ and } n_{i,j}^{t}\in B \\ 1, & x_{i,j}^{t}=1 \text{ and } n_{i,j}^{t}\in S \\ 0, & \text{otherwise} \end{cases} $$

Este simulador aceita regras semelhantes ao Jogo da Vida no formato B.../S..., com contagens de vizinhas de \(0\) a \(8\).

Regras elementares unidimensionais

Um autômato celular elementar tem uma linha de células binárias. Cada nova linha é formada a partir da linha anterior observando três células por vez: a vizinha à esquerda, a célula central e a vizinha à direita.

Existem \(2^3=8\) vizinhanças possíveis de três células. Uma regra deve escolher \(0\) ou \(1\) para cada um desses \(8\) casos, portanto há:

$$ 2^8=256 $$

regras elementares possíveis. É por isso que os números das regras elementares vão de \(0\) a \(255\).

Se o número da regra for escrito em binário como:

$$ R=(b_7b_6b_5b_4b_3b_2b_1b_0)_2 $$

então o índice da vizinhança será:

$$ N=4s_{i-1}^{t}+2s_i^{t}+s_{i+1}^{t} $$

em que \(s_i^t\) é o estado da coluna \(i\) na geração \(t\). O próximo estado é o bit da regra nesse índice:

$$ s_i^{t+1}=b_N $$

Por exemplo, a vizinhança 100 tem:

$$ N=4(1)+2(0)+0=4 $$

Portanto, o próximo estado é o bit \(b_4\) do número da regra selecionada.

Densidade

A densidade mede quanto da grade ou da linha atual está ativo:

$$ \text{density}=\frac{\text{active cells}}{\text{total cells}}\times 100\% $$

No modo Life, este simulador usa uma grade \(54\times36\):

$$ 54\times36=1944 \text{ cells} $$

No modo elementar, a densidade é baseada na linha mais recente de \(54\) células.


Exemplos de autômatos celulares na prática

Exemplo 1: interpretando B3/S23

Suponha que a regra semelhante ao Jogo da Vida selecionada seja B3/S23.

Uma célula morta com três vizinhas vivas nasce:

$$ x_{i,j}^{t}=0,\quad n_{i,j}^{t}=3 \quad \Rightarrow \quad x_{i,j}^{t+1}=1 $$

Uma célula viva com duas vizinhas vivas sobrevive:

$$ x_{i,j}^{t}=1,\quad n_{i,j}^{t}=2 \quad \Rightarrow \quad x_{i,j}^{t+1}=1 $$

Uma célula viva com quatro vizinhas vivas morre porque \(4\) não pertence ao conjunto de sobrevivência \(S=\{2,3\}\):

$$ x_{i,j}^{t}=1,\quad n_{i,j}^{t}=4 \quad \Rightarrow \quad x_{i,j}^{t+1}=0 $$

Essa regra é a regra clássica do Jogo da Vida de Conway.


Exemplo 2: interpretando um bit de uma regra elementar

A regra \(30\) tem a forma binária:

$$ 30=(00011110)_2 $$

Para a vizinhança de três células 100, o índice é:

$$ N=4(1)+2(0)+0=4 $$

O bit \(b_4\) em 00011110 é \(1\), então uma célula com a vizinhança 100 fica viva na próxima linha:

$$ s_i^{t+1}=1 $$

Para a vizinhança 111, o índice é:

$$ N=4(1)+2(1)+1=7 $$

O bit \(b_7\) é \(0\), então essa vizinhança produz uma célula morta na próxima linha.


Exemplo 3: o comportamento nas bordas pode mudar o padrão

As condições de contorno são importantes porque uma simulação finita tem bordas.

No modo Life, este simulador trata as células fora da grade \(54\times36\) como mortas. Uma célula viva em um canto tem menos vizinhas vivas possíveis do que uma célula viva no meio da grade, porque as posições externas não dão a volta para o outro lado.

No modo elementar, a linha dá a volta horizontalmente. As células mais à esquerda e mais à direita são tratadas como vizinhas. Isso pode fazer um padrão elementar continuar suavemente através da borda, embora o modo Life não use o mesmo comportamento de contorno.


Como interpretar o resultado

O resumo do resultado mostra a geração atual, a contagem de células ativas e a densidade.

Geração informa quantos passos ocorreram desde que a semente atual foi inicializada, aleatorizada, limpa, carregada, desenhada no modo elementar ou redefinida pela troca de modo. No modo elementar, desenhar cria uma nova semente de uma linha, em vez de avançar por gerações ainda não calculadas.

Células ativas significa coisas diferentes nos dois modos. No modo Life, é o número de células vivas em toda a grade \(54\times36\). No modo elementar, é o número de células vivas na linha mais recente.

Densidade é a porcentagem de células ativas. Uma densidade próxima de \(0\%\) significa que poucas células estão ativas. Uma densidade maior significa que mais células estão ativas, mas isso não quer dizer automaticamente que a regra seja mais interessante ou complexa. Algumas regras densas rapidamente se tornam uniformes, enquanto algumas regras esparsas produzem movimentos estruturados ou padrões duradouros.

Nascimentos / vivas na próxima também depende do modo. No modo Life, essa métrica conta as células mortas que ficaram vivas no último passo. No modo elementar, conta as células vivas na linha recém-gerada.

Mortes / vivas anteriores também tem um significado específico para cada modo. No modo Life, conta as células vivas que morreram no último passo. No modo elementar, informa a contagem de células vivas na linha anterior.

O gráfico da população mostra o histórico de células ativas. Sua altura é dimensionada em relação ao maior valor do histórico atual, portanto ele deve ser lido como uma tendência relativa, não como um gráfico de escala fixa.

As tabelas de comparação são projeções. No modo Life, a comparação projeta a regra selecionada e a linha de base do B3/S23 de Conway por \(18\) passos a partir da grade atual. No modo elementar, a comparação faz a projeção a partir da linha de semente inicial por \(32\) passos e compara a regra selecionada com as regras de referência \(30\), \(90\) e \(110\). Essas projeções não alteram a simulação viva atual.


Erros comuns e equívocos

Um erro comum é inserir uma regra do modo Life sem a estrutura B/S exigida. Use B3/S23, não 23/3.

Outro erro é tratar os números das regras elementares como decimais arbitrários. As regras elementares devem ser números inteiros de \(0\) a \(255\). Valores negativos, frações e textos não numéricos não são regras elementares válidas.

Não presuma que os dois modos usam a mesma condição de contorno. O modo Life usa espaço morto fora da grade. O modo elementar dá a volta horizontalmente.

A configuração de velocidade é apenas um controle de reprodução. Ela não é o número da geração, uma unidade de tempo científica nem uma medida exata de gerações por segundo.

A regra de entrada relevante depende do modo. A regra do modo Life é usada apenas no modo Life, e a regra elementar é usada apenas no modo elementar.

A tabela de comparação não é o mesmo que pressionar Avançar. Ela antecipa o comportamento projetado para comparação, deixando a simulação atual inalterada.

Por fim, a densidade de células ativas não deve ser tratada como uma descrição completa do comportamento. Duas regras podem ter densidades semelhantes, mas estruturas visuais muito diferentes.


Quando usar autômatos celulares

Use autômatos celulares quando quiser explorar como regras locais moldam o comportamento global.

Eles são especialmente úteis para:

  • demonstrações em sala de aula sobre emergência e sistemas discretos;
  • aprender a diferença entre descrições locais e globais;
  • comparar regras de nascimento/sobrevivência semelhantes ao Jogo da Vida;
  • estudar regras elementares e códigos de regras binárias;
  • experimentar com sementes, planadores, osciladores, naves espaciais e inicializações aleatórias;
  • desenvolver a intuição antes de estudar modelos de simulação mais avançados.

Um autômato celular não é a ferramenta adequada quando você precisa de uma previsão física, biológica, financeira ou de engenharia validada. Ele é um modelo baseado em regras para exploração, a menos que tenha sido cuidadosamente adaptado e testado em relação ao sistema real que está sendo modelado.


Limitações e pontos importantes

Este simulador aceita apenas autômatos celulares binários. Cada célula está viva ou morta.

O modo Life aceita B.../S... regras semelhantes ao Jogo da Vida, com contagens de vizinhas de \(0\) a \(8\). Ele não aceita vizinhanças maiores, células com múltiplos estados, arquivos de padrões importados, tamanhos de grade personalizados nem condições de contorno toroidais no modo Life.

O modo elementar aceita regras elementares inteiras no estilo de Wolfram, de \(0\) a \(255\). Ele usa condições de contorno com retorno horizontal e não oferece outra opção de contorno elementar.

O tamanho da grade é fixo em \(54\) colunas por \(36\) linhas. No modo elementar, são exibidas no máximo \(36\) linhas; as linhas mais antigas saem da área de exibição quando ela fica cheia.

As sementes aleatórias usam probabilidades fixas: \(25\%\) de células vivas no modo Life e \(45\%\) de células vivas no modo elementar. Não é possível definir probabilidades de aleatorização personalizadas.

O retrocesso depende do histórico armazenado. O simulador não pode retroceder além dos instantâneos disponíveis, e trocar o modo, limpar, aleatorizar, desenhar ou carregar um padrão pode redefinir o histórico armazenado.

Alterar uma regra afeta os passos futuros e as projeções de comparação. Isso não reescreve as gerações anteriores que já foram produzidas sob uma regra anterior.

A densidade principal é exibida com uma casa decimal. Contagens como geração, células ativas, nascimentos, mortes, células vivas projetadas e células vivas no pico são números inteiros.


Como usar este simulador

  1. Escolha o modo Life para um autômato celular bidimensional B/S ou escolha o modo Elementar para um autômato unidimensional baseado em números de regras.
  2. Digite uma regra do modo Life, como B3/S23, ou digite um número de regra elementar de \(0\) a \(255\).
  3. Defina o padrão inicial desenhando células, apagando células, carregando uma predefinição do modo Life, usando Aleatório ou usando Limpar.
  4. Ajuste o controle deslizante de velocidade para controlar a velocidade de reprodução.
  5. Use Executar para iniciar, Pausar para parar, Avançar para avançar uma geração e Retroceder para restaurar a geração anterior quando houver histórico disponível.
  6. Consulte o resumo do resultado, os cartões de métricas, o gráfico da população, a tabela de comparação e a explicação das fórmulas.
  7. Use os controles de download para salvar a grade ou o gráfico atual como uma imagem PNG.

Perguntas frequentes

Qual é a diferença entre o modo Life e o modo elementar?

O modo Life é bidimensional. Cada célula usa as oito células ao redor para decidir se nasce, sobrevive ou morre. O modo elementar é unidimensional, e cada nova linha é gerada a partir de vizinhanças de três células na linha anterior.


Por que B3/S23 aparece com tanta frequência?

B3/S23 é a regra do Jogo da Vida de Conway. Ela é um exemplo clássico porque condições muito simples de nascimento e sobrevivência podem produzir vidas estáticas, osciladores, planadores, naves espaciais e outros padrões duradouros.


Por que as regras elementares são limitadas de 0 a 255?

Uma regra elementar tem \(8\) vizinhanças possíveis de três células. Cada vizinhança pode produzir \(0\) ou \(1\), então há \(2^8=256\) regras possíveis. Numerá-las de \(0\) a \(255\) fornece um número para cada regra elementar possível.


Uma densidade maior significa que a regra é mais complexa?

Não necessariamente. A densidade só informa quantas células estão ativas. A complexidade também depende da estrutura, do movimento, da repetição, do crescimento, do decaimento e da sensibilidade ao padrão inicial.


Por que o padrão se comporta de maneira diferente perto da borda?

O comportamento nas bordas depende da condição de contorno. O modo Life trata as posições fora da grade como mortas, enquanto o modo elementar dá a volta horizontalmente na linha. Como a vizinhança é diferente no contorno, o padrão futuro pode mudar.


Fontes e referências

Livros

  1. Joel L. Schiff. Cellular Automata: A Discrete View of the World. Wiley Series in Discrete Mathematics and Optimization, John Wiley & Sons, publicado pela primeira vez em 2007; direitos autorais de 2008. Capítulo 3, “One-Dimensional Cellular Automata”, especialmente as seções sobre autômatos celulares, funções de transição, regras locais, sincronicidade e regras elementares.
  2. Stephen Wolfram. A New Kind of Science. Wolfram Media, 2002. Capítulo 3, “The World of Simple Programs”, seção “More Cellular Automata”; Capítulo 6, “Starting from Randomness”; Capítulo 11, “The Notion of Computation”. Edição on-line e informações de citação: https://www.wolframscience.com/nks/ e https://www.wolframscience.com/nks/citation/.

Fontes on-line e oficiais

  1. Francesco Berto e Jacopo Tagliabue. “Cellular Automata.” The Stanford Encyclopedia of Philosophy, edição de verão de 2025, Metaphysics Research Lab, Stanford University. https://plato.stanford.edu/archives/sum2025/entries/cellular-automata/.
  2. Eric W. Weisstein. “Elementary Cellular Automaton.” MathWorld--A Wolfram Web Resource, acessado em 27 de junho de 2026. https://mathworld.wolfram.com/ElementaryCellularAutomaton.html.
  3. Martin Gardner. “Mathematical Games: The Fantastic Combinations of John Conway's New Solitaire Game ‘Life.’” Scientific American, vol. 223, outubro de 1970, p. 120–123. Cópia hospedada em Stanford, acessada em 27 de junho de 2026. https://web.stanford.edu/class/sts145/Library/life.pdf.
  4. David Eppstein. “Growth and Decay in Life-Like Cellular Automata.” In Andrew Adamatzky, ed., Game of Life Cellular Automata, Springer, 2010, p. 71–98. DOI: 10.1007/978-1-84996-217-9_6. Versão no arXiv acessada em 27 de junho de 2026. https://arxiv.org/abs/0911.2890.