Симуляции и рост

Реакция–диффузия

Два вещества: одно питает другое, оба растекаются с разной скоростью — и возникают пятна, полосы и кораллы Тьюринга.

  • симуляция на GPU
  • бесшовный тайл
Открыть в редакторе →

Пятна леопарда, полосы зебры и рыб-ангелов, извилины коралла-мозговика, завитки отпечатка пальца — природа снова и снова рисует одни и те же мотивы. В 1952 году Алан Тьюринг предположил, что за многими из них стоит простой механизм: два вещества реагируют друг с другом и расплываются с разной скоростью. Совершенно однородная смесь при этом оказывается неустойчивой и сама собой распадается на пятна или полосы. Этот слой — химия такого рода, посчитанная на видеокарте.

Как это устроено

Здесь работает модель Грея — Скотта. Вещество A непрерывно подаётся в систему, вещество B поедает его и размножается (A + 2B → 3B), а само понемногу выводится из системы. Оба вещества диффундируют, причём A растекается вдвое быстрее B. Каждая клетка сетки хранит две концентрации; на каждом шаге генератор усредняет их по соседям (лапласиан на ядре 3 × 3) и добавляет реакцию, подачу и убыль.

∂A/∂t = D_A∇²A − AB² + F(1 − A) ∂B/∂t = D_B∇²B + AB² − (F + k)B D_A = 1, D_B = 0,5

Всё решают два числа: подача F и убыль k. «Режим» выбирает проверенные пары: «кораллы» — F = 0,0545 и k = 0,062, «митоз» — 0,0367 и 0,0649 (пятна делятся, как клетки), дальше «лабиринт», «отпечатки», «черви», «волны» и другие. В режиме «свой» пару задают «Подача F» и «Убыль k». Сетка замкнута в тор, поэтому готовая картинка — бесшовный тайл. «Затравка» — то, с чего начинается рост: россыпь пятен, капля в центре, кольцо или линии. На экран выводится концентрация B, пропущенная через палитру; «Резкость» делает границы чётче, а «Рельеф» освещает поле, как карту высот.

Немного истории

Статья Тьюринга «Химические основы морфогенеза» вышла в 1952 году, за два года до его смерти, и десятилетиями оставалась теорией. Питер Грей и Стивен Скотт в 1983–1984 годах занимались вполне прикладной задачей — автокаталитическими реакциями в проточном реакторе с перемешиванием; их уравнения стали главным полигоном для узоров. В 1993 году Джон Пирсон опубликовал в Science работу «Сложные узоры в простой системе»: он просканировал плоскость (F, k) и обозначил найденные типы узоров греческими буквами. Настоящие химические структуры Тьюринга впервые получили в гелевом реакторе во Франции в 1990 году, а в 1995-м Сигэру Кондо и Рихито Асаи показали, что полосы рыбы-ангела Pomacanthus перестраиваются по мере её роста именно так, как предсказывает реакция–диффузия.

Что покрутить

  • В режиме «свой» сдвигайте «Убыль k» на тысячные: между пятнами и лабиринтом лежит узкая полоса, где узор меняется на глазах.
  • «Затравка» «центр» и «Шагов» поменьше — видно, как узор растёт от капли к краям. Включите анимацию: «Скорость роста» задаёт, сколько шагов симуляции проходит за кадр.
  • «Детальность» 150–250 — крупные сочные пятна, 800 и больше — тонкое кружево (считается дольше).
  • «Рельеф» 0,5–0,7 и «Резкость» 0,8 превращают узор в тиснёный пластик или кожу рептилии.
  • Слой отлично работает маской: положите над ним «Градиентную сетку» и выберите реакцию–диффузию в её «Маске» — кораллы проступят мягкими пятнами цвета.

Параметры

Режим
кораллы · митоз · лабиринт · пятна · черви · дыры · отпечатки · волны · свой
Подача F
Скорость подачи вещества A (режим «свой»)
Убыль k
Скорость распада вещества B (режим «свой»)
Детальность
Клеток сетки по короткой стороне: больше — мельче узор
Шагов
Сколько шагов симуляции до готовой картинки
Затравка
шум · центр · кольцо · линии
Плотность затравки
Резкость
Рельеф
Скорость роста
Шагов симуляции на кадр анимации