Тисячі частинок рухаються в полі векторів шуму Перліна, створюючи зачаровуючі вихрові патерни. Налаштовуйте масштаб шуму, швидкість, тривалість слідів та колірну палітру. Генеративне мистецтво в браузері, натхненне «Зоряною ніч» Ван Гога.
Це поле потоку в реальному часі, де 3000 частинок дрейфують крізь невидиме векторне поле, напрямок якого в кожній точці задається шумом Перліна. Симуляція семплює гладку 3D-функцію шуму на сітці з комірок розміром 20 пікселів, перетворює кожне значення на кут і щокадру спрямовує кожну частинку вздовж локального кута. Оскільки третя вісь шуму повільно змінюється з часом, усе поле плавно завихрюється й перебудовується, утворюючи турбулентні мазкоподібні річки кольору, властиві генеративному мистецтву.
Двовимірне поле потоку на основі шуму. Покращений шум Перліна (Кен Перлін, 2002) обчислюється як noise(c·scale, r·scale, t) для кожної комірки сітки й відображається на кут напрямку; частинки крокують у цьому напрямку з фіксованою швидкістю, залишаючи згасаючі сліди. Координата часу, що повільно зростає, змушує поле безперервно анімуватися, а не залишатися статичним.
Палітра змінює колірну схему та фон (Океан, Ван Гог, Вогонь, Моно). Масштаб шуму (Рідкий, Норм., Густий) задає, наскільки щільно змінюється поле. Швидкість (Повільно, Норм., Швидко) керує довжиною кроку частинки. Сліди (Довгі, Середні, Короткі) визначають, як швидко згасають старі мазки. «Нове поле» переініціалізує та відроджує всі частинки; «Пауза» зупиняє анімацію.
Кен Перлін винайшов шум Перліна в 1983 році для фільму «Трон» і отримав за нього премію «Оскар» у 1997 році. «Покращена» версія 2002 року, що використовується тут, замінює оригінальний пошук градієнтів фіксованим набором напрямків градієнта та плавнішою кривою згасання, усуваючи помітні артефакти сітки.
Поле потоку призначає напрямок (а іноді й швидкість) кожній точці простору. Тут кожна комірка сітки зберігає кут, а частинки просто слідують тому куту, над яким зараз перебувають. Простеження багатьох частинок крізь поле виявляє його структуру у вигляді плинних, річкоподібних смуг.
Для кожної комірки розміром 20 пікселів вона обчислює значення шуму Перліна в цьому місці та для поточного часу, а потім масштабує його в кут. Частинка зчитує кут комірки під собою й просувається на cos(кут) і sin(кут), помножені на швидкість, тож сусідні частинки слідують майже однаковими, плавно змінюваними траєкторіями.
Масштаб шуму змінює частоту семплування шуму (приблизно 0.0014, 0.0028 або 0.0056 на піксель): рідкі налаштування дають широкі, розмашисті течії, тоді як густі дають тісні, заплутані вири. Швидкість змінює, наскільки далеко рухається кожна частинка за кадр, у межах приблизно від 1.3 до 4.5 пікселя.
Не зовсім. Це візуально переконливе наближення, а не розв'язок рівнянь Нав'є-Стокса. Реальні рідини зберігають масу й імпульс, тоді як це поле є суто функцією шуму й не є бездивергентним, тож воно відтворює вигляд турбулентності без симуляції її базової фізики.
Шум семплюється у трьох вимірах, де третя координата прив'язана до лічильника часу, що зростає щокадру. Повільний рух уздовж цієї третьої осі подібний до перетину площинами плавно змінюваної 3D-текстури, тож поле безперервно змінюється. Натискання «Пауза» зупиняє лічильник часу й заморожує поточне поле.