
Идея
«Zero Player Game» — работа, объединяющая ностальгию по 8-битным играм со сложностью эмбриогенеза. Её название говорит о том, что сложность может возникать из простых вещей и правил.
Она представляет новый вид клеточных автоматов с нарастающим разрешением.
Вдохновение
Однажды ночью я читал книгу «The Algorithmic Beauty of Plants» и понял, что клеточные автоматы — это частный случай контекстно-зависимых L-систем! А ведь два года я пытался и не мог понять, как сделать генеративные грамматики двумерными.
Я был так вдохновлён, что следующим утром написал прототип.
Как это работает
Клеточному автомату нужны правила, по которым клетки меняют цвета!
У нас только два цвета: ■ и □. Чтобы найти новый цвет клетки, смотрим на цвет самой клетки и её четырёх соседей. Возможны 32 комбинации:

Каждой из этих комбинаций сопоставляется цвет, в который мы перекрашиваем центральную клетку: это и будут наши правила. Например, такие:
Это один из 2^32 = 4 294 967 296 возможных вариантов правил
Дальше просто. Берём начальную сетку 4×4 клетки и случайно заполняем её □ и ■.
Затем для каждой клетки находим новый цвет по правилам. Обратите внимание, как центральная клетка заштрихованной области использовала подходящее правило, чтобы узнать свой новый цвет.
Наконец, увеличиваем разрешение сетки, деля каждую клетку на четыре.
На третьей картинке непонятно, разделились чёрные клетки или нет. Поверьте, разделились!
Повторяем эту процедуру несколько раз. Должно получиться что-то вроде этого:

Или этого:

Дальше можно придумать правила раскрашивания, комбинировать разные правила, переключать правила на полпути, накладывать картинку на её предыдущие менее детализированные итерации, и веселиться как угодно!