FRENAR
N°05 · Canvas 2D · Systèmes émergents

Automate cellulaire

Des règles locales triviales engendrent une complexité globale stupéfiante. Dessinez vos propres formes initiales, puis observez la vie émerger — ou s'éteindre.

dessinez au clic · espace = pause
// Automate cellulaire — Game of Life (Conway 1970)
function step(grid, cols, rows) {
  const next = new Uint8Array(cols * rows);
  for (let y = 0; y < rows; y++) {
    for (let x = 0; x < cols; x++) {
      let n = 0; // compter les voisins vivants
      for (let dy = -1; dy <= 1; dy++)
        for (let dx = -1; dx <= 1; dx++)
          if (dx || dy)
            n += grid[((y+dy+rows)%rows)*cols + (x+dx+cols)%cols];
      const alive = grid[y * cols + x];
      // B3/S23 : naissance si 3 voisins, survie si 2 ou 3
      next[y * cols + x] = (alive && (n===2||n===3)) || (!alive && n===3) ? 1 : 0;
    }
  }
  return next;
}
À toi de jouer

Placez un « planeur » (bouton) et observez sa trajectoire diagonale infinie. Pouvez-vous dessiner un « canon à planeurs » (une forme qui émet un planeur toutes les 30 générations) ?

De la cellule à l'intelligence artificielle — explorez les systèmes complexes

Réserver un créneau