Хвиля 32: DLA, Фазовий портрет і Патерни Тюрінга

Хвиля 32 приносить три надзвичайно красиві математичні симуляції: розгалужені фрактальні дерева, що виростають частинка за частинкою з випадкової дифузії, геометричну мову теорії динамічних систем в інтерактивних фазових площинах векторного поля, та приголомшливе передбачення Алана Тюрінга 1952 року про те, що дві дифузні хімічні речовини можуть самовільно «надрукувати» плями, смуги й лабіринти на живій тканині. Усі три виходять з повними сторінками EN + UK.

Показники платформи

469
Симуляції
72
Категорії
52
Девлоги
32
Хвилі

Симуляції хвилі 32

🌿

Дифузійно-обмежена агрегація

Частинки виконують випадкові блукання, поки не торкнуться зростаючого кластера й не приклеяться назавжди. Отримане розгалужене дерево має фрактальну розмірність ~1.71.

Відкрити →
🔄

Фазовий портрет

Візуалізатор фазової площини для 2D ОДР. Клацніть, щоб простежити траєкторії, інтегровані методом RK4. Накладення показують стрілки векторного поля, нуль-ізокліни та нерухомі точки.

Відкрити →
🐆

Патерни Тюрінга

Реакційно-дифузійна система Грея-Скотта. П'ять пресетів — плями, смуги, лабіринт, мітоз, черв'яки — кожен відповідає окремим параметрам (F, k).

Відкрити →

🌿 Дифузійно-обмежена агрегація

Алгоритм Віттена-Сандера

Віттен і Сандер представили DLA у своїй статті 1981 року «Diffusion-Limited Aggregation, a Kinetic Critical Phenomenon». Алгоритм оманливо простий: одна частинка закріплена в початку координат (зерно). Нові частинки постійно з'являються у випадковій точці на колі трохи за межами поточного радіуса кластера, а потім виконують випадкове блукання (±1 по x або y на кожному кроці). Щойно частинка потрапляє поряд із будь-якою вже наявною в кластері коміркою, вона назавжди застигає і стає частиною кластера. Повторити.

Гілки виникають тому, що частинки, які блукають далеко від кластера, з однаковою ймовірністю можуть наблизитися з будь-якого напрямку — але частинки глибоко у ввігнутій щілині навряд чи продифундують аж туди, перш ніж торкнуться кінчика гілки. Тому кінчики ростуть найшвидше й затіняють внутрішню частину, створюючи характерну дендритну структуру.

Деталі реалізації

Кольорові палітри

Шість палітр відображають індекс входження в кластер (нормалізований від 0 до 1 відносно maxParticles) у трійку RGB: смарагдова, золота, крижана, полум'яна, фіолетова та монохромна. Перемикання палітри запускає повне перемальовування всіх пікселів ImageData N×N зі збереженої сітки, тож жодні дані про частинки не втрачаються.

Що спробувати

🔄 Фазовий портрет

Навіщо фазові площини?

Двовимірну автономну систему ОДР ẋ = f(x,y), ẏ = g(x,y) для більшості цікавих f і g неможливо розв'язати аналітично — але її поведінку можна повністю охарактеризувати геометрично. Фазова площина — це система координат (x, y); у кожній точці ми малюємо маленьку стрілку в напрямку (f, g). Траєкторії — це криві, що течуть уздовж цих стрілок. Нерухомі точки (де стрілки зникають) класифікуються як вузли, спіралі, сідла або центри — класифікація, для якої потрібні лише власні значення якобіана.

Шість класичних систем

Реалізація: інтегрування RK4

Траєкторії інтегруються класичним методом Рунге-Кутти 4-го порядку. Кожен виклик rk4(x, y, dt) обчислює f і g чотири рази (у поточній точці, двох проміжних точках і передбаченій кінцевій точці) і комбінує їх з вагами 1/6, 1/3, 1/3, 1/6. Крок часу dt = 0.03, і до 6 кроків RK4 виконується за один виклик requestAnimationFrame. Траєкторії автоматично припиняються, якщо виходять за межі радіуса знищення, що дорівнює 3× діапазону перегляду.

Нуль-ізокліни

x-нуль-ізоклина (червона) — це множина точок, де ẋ = 0 — траєкторії перетинають її, рухаючись вертикально. y-нуль-ізоклина (синя) — де ẏ = 0 — траєкторії перетинають її, рухаючись горизонтально. Їхні перетини завжди є нерухомими точками. Обидві обчислюються шляхом сканування сітки 300×300 фазової площини та виявлення змін знака стовпець за стовпцем (для x-нуль-ізокліни) або рядок за рядком (для y-нуль-ізокліни), з лінійною інтерполяцією до субсіткової точності.

Що спробувати

🐆 Патерни Тюрінга

Прозріння Тюрінга 1952 року

У своїй статті «The Chemical Basis of Morphogenesis» (1952) Алан Тюрінг математично показав, що два хімічні види з різними коефіцієнтами дифузії можуть самовільно порушувати трансляційну симетрію — починаючи з майже однорідного розподілу, система підсилюватиме малі просторові флуктуації й встановлюватиметься у стійкий просторово-періодичний патерн.

Ключовий механізм — локальна самоактивація з далекосяжним латеральним пригніченням. Активатор U каталізує власне виробництво, а також виробляє інгібітор V, але V дифундує швидше за U. Тому невеликий сплеск U створює локальний надлишок V, який пригнічує U в навколишній області, вирізаючи характерну довжину хвилі патерну.

Модель Грея-Скотта

Грей і Скотт (1984) представили чисту реакційну схему, яка демонструє широку різноманітність патернів Тюрінга залежно від двох параметрів:

∂U/∂t = DU∇²U − UV² + F(1−U)

∂V/∂t = DV∇²V + UV² − (F+k)V

Тут UV² — автокаталітичний член (U і V реагують, утворюючи більше V), F(1−U) підживлює U з резервуару, а (F+k)V видаляє V. Фіксовані параметри: DU = 0.16 і DV = 0.08 (тобто U дифундує вдвічі швидше за V). Пресети охоплюють карту параметрів, вперше задокументовану Пірсоном (1993):

Реалізація: 9-точковий лапласіан, інтегрування Ейлера

Симуляція працює на періодичній сітці 200×200 з парами подвійних буферів Float32Array. Дискретний лапласіан використовує 9-точковий шаблон з вагами 0.05 для чотирьох діагональних сусідів і 0.20 для чотирьох кардинальних сусідів (у сумі дають 1 мінус вагу центру −1), що забезпечує кращу ізотропію, ніж стандартний 5-точковий шаблон. Інтегрування — прямий метод Ейлера з dt = 1.0; це чисельно стійко, оскільки DU ≤ 0.16 < 0.25 (межа стійкості CFL для цього шаблону).

П'ять кольорових палітр (бурштинова, океанічна, плазмова, нефритова, монохромна) лінійно відображають поле концентрації U від фону до переднього плану. Цикл рендерингу пише безпосередньо в буфер пікселів ImageData для максимальної пропускної здатності — без проміжних рядків CSS-кольорів.

Ініціалізація: засіяні плями

Сітка починається зі значень U ≈ 1, V ≈ 0 всюди (тривіальна нерухома точка), з крихітним випадковим шумом для порушення симетрії. Дванадцять маленьких кругових плям радіусом 4 засіваються значеннями U = 0.5, V = 0.25. Вони діють як центри нуклеації; без них самого шуму знадобилося б набагато більше часу, щоб засіяти патерн. Кінцевий патерн не залежить від позицій зерен — лише (F, k) визначає, який тип патерну зрештою виникне.

Що спробувати

Технічні нотатки

Теги

DLA Фрактали Випадкове блукання Фрактальна розмірність Фазовий портрет Динамічні системи Ван дер Поль Лотка-Вольтерра RK4 Патерни Тюрінга Реакційна дифузія Грей-Скотт Морфогенез Хвиля 32

Огляд хвилі 33

Три симуляції заплановано для хвилі 33:

Усі симуляції хвилі 33 вийдуть із сторінками EN + UK у день запуску.