Девлог #55 – Хвиля 35: Гармонограф, Піщана дюна та Коралловий риф

Хвиля 35 охоплює математику, науки про Землю та морську біологію: гармонограф із подвійним маятником, що малює прогресивні фігури Лісажу з експоненційним загасанням, модель піщаної дюни на клітинному автоматі з еоловою сальтацією та емерджентною морфологією бархана, і симуляцію кораллового рифу, де знебарвлення, кероване температурою, та динаміка відновлення колоній розгортаються в реальному часі. Усі три симуляції виходять з повними українськими перекладами з першого дня.

Статистика випуску

478
Усього симуляцій
55
Записів девлогу
35
Хвиль випусків
1672
URL у мапі сайту

Нові симуляції

🎨

Гармонограф

Побудовувач параметричних кривих із подвійним маятником, що використовує пов'язані синусоїдальні осцилятори з експоненційним загасанням. Шість пресетів (Лісажу, Квітка, Спіраль, Зірка, Троянда, Павутина) плюс ручне керування частотою, фазою та загасанням. Чотири режими кольору та експорт у PNG.

Відкрити Гармонограф →
🏜️

Піщана дюна

Модель еолового перенесення піску на клітинному автоматі. Вітер переміщує зерна стрибками сальтації; правило лавини забезпечує кут природного укосу. Три початкові сценарії дозволяють спостерігати огрублення брижів, зростання бархана з купи піску та формування поперечних гребенів.

Відкрити Піщану дюну →
🪸

Коралловий риф

Клітинний автомат з чотирма станами (вода, корал, знебарвлений, мертвий/водорості) на сітці 140×100. Вісім колоній-засновників розростаються назовні; підняття повзунка температури вище 28 °C запускає прогресивне знебарвлення та загибель. Анімований ефект підводних світлових відблисків.

Відкрити Коралловий риф →

Гармонограф — нотатки з розробки

Модель подвійного маятника

Класичний ротаційний гармонограф використовує два маятники: один керує горизонтальним зміщенням, інший — вертикальним. У цій симуляції обидва маятники слідують загасаючій синусоїдальній моделі:

де SCALE = 210 пікселів, d — спільний коефіцієнт загасання (0.0001–0.008), а зсуви фази φ1,2 охоплюють діапазон 0–2π. Цілочисельні співвідношення частот (2:3, 3:4, 5:4 …) дають замкнені фігури Лісажу; ірраціональні співвідношення дають повільно прецесуючі відкриті криві.

Прогресивне малювання

Замість обчислення всієї кривої за один кадр (що виглядало б миттєво і невиразно), симуляція малює задану кількість відрізків лінії за кадр анімації. Повзунок «Швидкість малювання» встановлює загальну цільову кількість точок від 100 до 3000; кожен кадр малює Math.ceil(totalPts / 60) відрізків, тому крива завжди завершується приблизно за одну секунду незалежно від налаштування швидкості. Відрізки між послідовними вибірками (x, y) з'єднуються методом ctx.lineTo від збереженої позиції lastX/lastY.

Режими кольору

Доступні чотири режими кольору: Рожевий (hsla(320, 90%, 75%)), Веселка (відтінок збільшується на 0.5 на кожен відрізок, проходячи через усі 360° протягом малювання кривої), Блакитний (hsla(185, 90%, 65%)) та Золотий (hsla(45, 90%, 65%)). Усі режими використовують напівпрозорий штрих (alpha 0.7), тому проходи, що накладаються, змішуються.

Пресети

Шість іменованих пресетів охоплюють найбільш візуально цікаві комбінації параметрів:

Піщана дюна — нотатки з розробки

Алгоритм сальтації

Ціла сітка висот 140×80 зберігає кількість піщинок на клітинку (0–maxH). Кожен крок симуляції виконує wind × 3 × GX спроб сальтації: обирається випадкова клітинка; якщо в ній є пісок, зерно стрибає за вітром на floor(1 + rand × wind × 0.8) клітинок і осідає в кінцевій точці (якщо це нижче maxH). Додаткові зерна входять з навітряного (лівого) краю зі швидкістю, що керується повзунком подачі піску, а зерна виходять із підвітряного (правого) краю.

Правило лавини

Після кожного проходу сальтації поширюється хвиля лавини: якщо будь-яка горизонтально суміжна пара клітинок має різницю висот, що перевищує поріг кута природного укосу arp (типово 4, діапазон 2–8), половина надлишку негайно переноситься. Хвиля повторюється, доки не залишиться порушень (обмежено 30 ітераціями, щоб уникнути нескінченних циклів на крутих початкових умовах). Це відтворює характерну асиметрію реальних дюн: пологий навітряний схил, крутий схил осипання з підвітряного боку.

Емерджентні морфології

Три початкові сценарії розкривають різні типи дюн, знайомі з польової геоморфології:

Коралловий риф — нотатки з розробки

Клітинний автомат із чотирма станами

Кожна клітинка на сітці 140×100 має один із чотирьох дискретних станів: Вода (порожня, відображається як фон океану), Корал (відображається у відтінку HSL, характерному для колонії, з набору 8 колірних сімейств), Знебарвлений (блідо-синьо-білий) або Мертвий/Водорості (темний оливково-зелений). Паралельний масив відтінків зберігає колір кожної кораллової клітинки, тому ідентичність колонії зберігається протягом знебарвлення та відновлення.

Правила, керовані температурою

Кожен кадр стохастично вибирає 15 % усіх клітинок і застосовує п'ять правил залежно від поточного значення повзунка температури:

Це відтворює спостережуваний у природі гістерезис: помірний тепловий стрес вище 28 °C викликає поступове знебарвлення, яке зникає, якщо температура падає, але тривалий вплив температур вище 30.5 °C спричиняє незворотну загибель і подальше захоплення території водоростями.

Підводні відблиски

Шість анімованих квадратичних кривих Без'є з осцилюючими контрольними точками імітують заломлені світлові патерни («відблиски», caustics), помітні на мілководному дні рифу. Вони малюються з прозорістю 6 % у блакитному кольорі поверх градієнта фону глибокої води перед тим, як зверху рендериться сітка клітинок, тому вони видимі лише крізь клітинки води.

Українські переклади

Усі три симуляції випущені з повними українськими (UK) версіями за адресами /uk/harmonograph/, /uk/sand-dune/ та /uk/coral-reef/. Мітки інтерфейсу, інформаційні панелі, назви пресетів, блоки статистики та освітній текст повністю перекладені. Код фізики та рендерингу ідентичний для EN- і UK-сторінок.

Що далі — анонс Хвилі 36

Список ідей продовжує рости. Кандидати на Хвилю 36 включають:

Усі симуляції Хвилі 36 вийдуть з EN- і UK-сторінками в день релізу.