Статистика випуску
Нові симуляції
Гармонограф
Побудовувач параметричних кривих із подвійним маятником, що використовує пов'язані синусоїдальні осцилятори з експоненційним загасанням. Шість пресетів (Лісажу, Квітка, Спіраль, Зірка, Троянда, Павутина) плюс ручне керування частотою, фазою та загасанням. Чотири режими кольору та експорт у PNG.
Відкрити Гармонограф →Піщана дюна
Модель еолового перенесення піску на клітинному автоматі. Вітер переміщує зерна стрибками сальтації; правило лавини забезпечує кут природного укосу. Три початкові сценарії дозволяють спостерігати огрублення брижів, зростання бархана з купи піску та формування поперечних гребенів.
Відкрити Піщану дюну →Коралловий риф
Клітинний автомат з чотирма станами (вода, корал, знебарвлений, мертвий/водорості) на сітці 140×100. Вісім колоній-засновників розростаються назовні; підняття повзунка температури вище 28 °C запускає прогресивне знебарвлення та загибель. Анімований ефект підводних світлових відблисків.
Відкрити Коралловий риф →Гармонограф — нотатки з розробки
Модель подвійного маятника
Класичний ротаційний гармонограф використовує два маятники: один керує горизонтальним зміщенням, інший — вертикальним. У цій симуляції обидва маятники слідують загасаючій синусоїдальній моделі:
-
x(t) = CX + SCALE · sin(f1 t + φ1) · e−d t -
y(t) = CY + SCALE · sin(f2 t + φ2) · e−d t
де 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),
тому проходи, що накладаються, змішуються.
Пресети
Шість іменованих пресетів охоплюють найбільш візуально цікаві комбінації параметрів:
- Лісажу — f1=2.0, f2=3.0, φ2=π/2, d=0.001
- Квітка — f1=3.0, f2=4.0, φ2=π/2, d=0.0008
- Спіраль — f1=5.0, f2=4.0, φ2=0.3π, d=0.0015
- Зірка — f1=5.0, f2=3.0, φ2=π/2, d=0.001
- Троянда — f1=7.0, f2=5.0, φ2=π/3, d=0.0008
- Павутина — f1=8.0, f2=7.0, φ2=0.15π, d=0.0006
Піщана дюна — нотатки з розробки
Алгоритм сальтації
Ціла сітка висот 140×80 зберігає кількість піщинок на
клітинку (0–maxH). Кожен крок симуляції виконує
wind × 3 × GX
спроб сальтації: обирається випадкова клітинка; якщо в ній є
пісок, зерно стрибає за вітром на
floor(1 + rand × wind × 0.8) клітинок і
осідає в кінцевій точці (якщо це нижче maxH). Додаткові
зерна входять з навітряного (лівого) краю зі швидкістю, що
керується повзунком подачі піску, а зерна виходять із підвітряного
(правого) краю.
Правило лавини
Після кожного проходу сальтації поширюється хвиля лавини: якщо
будь-яка горизонтально суміжна пара клітинок має різницю висот, що
перевищує поріг кута природного укосу arp (типово 4,
діапазон 2–8), половина надлишку негайно переноситься.
Хвиля повторюється, доки не залишиться порушень (обмежено 30
ітераціями, щоб уникнути нескінченних циклів на крутих початкових
умовах). Це відтворює характерну асиметрію реальних дюн: пологий
навітряний схил, крутий схил осипання з підвітряного боку.
Емерджентні морфології
Три початкові сценарії розкривають різні типи дюн, знайомі з польової геоморфології:
- Рівна рівнина — розріджені випадкові зерна огрублюються в низькі поперечні брижі під впливом стійкого вітру за наявності рясного постачання піску.
- Купа піску — гаусів пагорб у вітровому полі з низьким постачанням набуває характерної серпоподібної форми бархана протягом кількох сотень кроків, з рогами, що мігрують швидше за центр.
- Рифлена поверхня — синусоїдальні початкові гофри проходять конкурентне огрублення, коли більші гребені «забирають» пісок у менших.
Коралловий риф — нотатки з розробки
Клітинний автомат із чотирма станами
Кожна клітинка на сітці 140×100 має один із чотирьох дискретних станів: Вода (порожня, відображається як фон океану), Корал (відображається у відтінку HSL, характерному для колонії, з набору 8 колірних сімейств), Знебарвлений (блідо-синьо-білий) або Мертвий/Водорості (темний оливково-зелений). Паралельний масив відтінків зберігає колір кожної кораллової клітинки, тому ідентичність колонії зберігається протягом знебарвлення та відновлення.
Правила, керовані температурою
Кожен кадр стохастично вибирає 15 % усіх клітинок і застосовує п'ять правил залежно від поточного значення повзунка температури:
-
Зростання: клітинка води, суміжна з коралом,
стає коралом з імовірністю
0.0008 × growthRate, успадковуючи відтінок сусіда. -
Знебарвлення: клітинка корала знебарвлюється
з імовірністю
max(0, T−28) × 0.04на кожен вибраний кадр. -
Загибель: знебарвлена клітинка гине з
імовірністю
max(0, T−30.5) × 0.08. -
Відновлення: знебарвлена клітинка
відновлюється до корала з імовірністю
0.0003 × recoveryRate, коли температура нижче 27 °C. - Вторгнення водоростей: мертва клітинка поширюється на сусідню воду з імовірністю 0.0001.
Це відтворює спостережуваний у природі гістерезис: помірний тепловий стрес вище 28 °C викликає поступове знебарвлення, яке зникає, якщо температура падає, але тривалий вплив температур вище 30.5 °C спричиняє незворотну загибель і подальше захоплення території водоростями.
Підводні відблиски
Шість анімованих квадратичних кривих Без'є з осцилюючими контрольними точками імітують заломлені світлові патерни («відблиски», caustics), помітні на мілководному дні рифу. Вони малюються з прозорістю 6 % у блакитному кольорі поверх градієнта фону глибокої води перед тим, як зверху рендериться сітка клітинок, тому вони видимі лише крізь клітинки води.
Українські переклади
Усі три симуляції випущені з повними українськими (UK) версіями
за адресами /uk/harmonograph/,
/uk/sand-dune/ та /uk/coral-reef/.
Мітки інтерфейсу, інформаційні панелі, назви пресетів, блоки
статистики та освітній текст повністю перекладені. Код фізики та
рендерингу ідентичний для EN- і UK-сторінок.
- Українські терміни: “Маятник X / Маятник Y”, “Загасання”, “Швидкість малювання”, “Кут укосу”, “Подача піску”, “Відбілення”, “Тепловий стрес”, “Масове відбілення”.
- Пауза/Грати: “Пауза” / “Грати”; Скинути: “Скинути”.
Що далі — анонс Хвилі 36
Список ідей продовжує рости. Кандидати на Хвилю 36 включають:
- Реакція-дифузія — модель Грея–Скотта, що генерує плями, смуги та патерни, подібні до мітозу (математика / хімія).
- Мурашиний алгоритм оптимізації — стигмергічне формування феромонних стежок та виникнення найкоротшого шляху (біологія / інформатика).
- Утримання плазми — траєкторії заряджених частинок у тороїдальному магнітному полі (фізика плазми).
Усі симуляції Хвилі 36 вийдуть з EN- і UK-сторінками в день релізу.