An open API service indexing awesome lists of open source software.

https://github.com/mukller/artificial-life

Artificial life simulation: cellular automata and evolutionary algorithms in the terminal
https://github.com/mukller/artificial-life

artificial-life cellular-automata cli python simulation terminal

Last synced: 5 days ago
JSON representation

Artificial life simulation: cellular automata and evolutionary algorithms in the terminal

Awesome Lists containing this project

README

          

[English](README_EN.md) • **Русский**

# artificial-life

Цифровая жизнь в 300 строках Python.

Клетки едят, делятся, умирают. Эволюция происходит сама собой — никакого
умного кода, только простые правила и естественный отбор.

## Что внутри

- **Среда** — сетка с едой, еда растёт случайно
- **Организмы** — энергия, геном (скорость/размер/восприятие), возраст
- **Эволюция** — при делении геном мутирует, слабые дохнут быстрее
- **Визуализация** — ASCII в терминале или pygame-окно

## Запуск

```bash
pip install pygame
python life.py # pygame окно
python life.py --ascii # прямо в терминале
```

Параметры:
```
--width ширина сетки (по умолчанию 80)
--height высота сетки (по умолчанию 40)
--seed начальное количество организмов
--fps кадров в секунду
```

## Как устроен геном

```python
genome = {
"speed": float, # клеток за ход
"perception": float, # радиус видения еды
"size": float, # влияет на потребление энергии
"mutation": float, # вероятность мутации потомка
}
```

Каждый параметр — компромисс. Быстрый жрёт больше. Большой видит дальше, но медленнее.