Devlog #55 – Fala 35: Harmonograf, Wydma piaskowa i Rafa koralowa

Fala 35 obejmuje matematykę, nauki o Ziemi i biologię morską: harmonograf z podwójnym wahadłem rysujący progresywne krzywe Lissajous z tłumieniem wykładniczym, model wydmy piaskowej na automacie komórkowym z eoliczną saltacją i emergentną morfologią barchanu oraz symulację rafy koralowej, w której blaknięcie sterowane temperaturą i dynamika regeneracji kolonii rozgrywają się w czasie rzeczywistym. Wszystkie trzy symulacje wychodzą z kompletnymi tłumaczeniami ukraińskimi od pierwszego dnia.

Statystyki wydania

478
Łącznie symulacji
55
Wpisów devlogu
35
Fal wydań
1672
Adresów URL w mapie strony

Nowe symulacje

🎨

Harmonograf

Rysownik krzywych parametrycznych z podwójnym wahadłem, wykorzystujący sprzężone oscylatory sinusoidalne z tłumieniem wykładniczym. Sześć presetów (Lissajous, Kwiat, Spirala, Gwiazda, Róża, Pajęczyna) oraz ręczne sterowanie częstotliwością, fazą i tłumieniem. Cztery tryby koloru i eksport do PNG.

Otwórz Harmonograf →
🏜️

Wydma piaskowa

Model automatu komórkowego eolicznego transportu piasku. Wiatr przemieszcza ziarna skokami saltacji; reguła lawinowa wymusza kąt naturalnego usypu. Trzy scenariusze początkowe pozwalają obserwować grubienie riplemarków, wzrost barchanu z kopca oraz formowanie się grzbietów poprzecznych.

Otwórz Wydmę piaskową →
🪸

Rafa koralowa

Automat komórkowy o czterech stanach (woda, koral, wybielony, martwy/glony) na siatce 140×100. Osiem kolonii-założycieli rośnie na zewnątrz; podniesienie suwaka temperatury powyżej 28 °C wywołuje postępujące wybielanie i śmierć. Animowany efekt podwodnych refleksów świetlnych.

Otwórz Rafę koralową →

Harmonograf — notatki projektowe

Model podwójnego wahadła

Klasyczny harmonograf rotacyjny wykorzystuje dwa wahadła: jedno steruje przemieszczeniem poziomym, drugie pionowym. W tej symulacji oba wahadła podążają za tłumionym modelem sinusoidalnym:

gdzie SCALE = 210 px, d to wspólny współczynnik tłumienia (0.0001–0.008), a przesunięcia fazy φ1,2 obejmują zakres 0–2π. Całkowitoliczbowe stosunki częstotliwości (2:3, 3:4, 5:4 …) dają zamknięte figury Lissajous; niewymierne stosunki dają wolno precesujące otwarte krzywe.

Rysowanie progresywne

Zamiast obliczać całą krzywą w jednej klatce (co wyglądałoby natychmiastowo i mało efektownie), symulacja rysuje konfigurowalną liczbę odcinków linii na klatkę animacji. Suwak „Szybkość rysowania” ustala łączną docelową liczbę punktów od 100 do 3000; każda klatka rysuje Math.ceil(totalPts / 60) odcinków, dzięki czemu krzywa zawsze kończy się w około jedną sekundę, niezależnie od ustawienia szybkości. Odcinki między kolejnymi próbkami (x, y) są łączone metodą ctx.lineTo od zapisanej pozycji lastX/lastY.

Tryby koloru

Dostępne są cztery tryby koloru: Różowy (hsla(320, 90%, 75%)), Tęczowy (odcień zwiększa się o 0.5 na odcinek, przechodząc przez pełne 360° w trakcie rysowania krzywej), Błękitny (hsla(185, 90%, 65%)) oraz Złoty (hsla(45, 90%, 65%)). Wszystkie tryby używają półprzezroczystego obrysu (alpha 0.7), dzięki czemu nakładające się przebiegi mieszają się ze sobą.

Presety

Sześć nazwanych presetów obejmuje najbardziej interesujące wizualnie kombinacje parametrów:

Wydma piaskowa — notatki projektowe

Algorytm saltacji

Całkowitoliczbowa siatka wysokości 140×80 przechowuje liczbę ziaren piasku na komórkę (0–maxH). Każdy krok symulacji wykonuje wind × 3 × GX prób saltacji: wybierana jest losowa komórka; jeśli zawiera piasek, ziarno skacze z wiatrem o floor(1 + rand × wind × 0.8) komórek i osiada w punkcie docelowym (jeśli jest poniżej maxH). Dodatkowe ziarna wchodzą od nawietrznej (lewej) krawędzi w tempie sterowanym suwakiem dostawy piasku, a ziarna opuszczają symulację od zawietrznej (prawej) krawędzi.

Reguła lawinowa

Po każdym przebiegu saltacji rozprzestrzenia się fala lawinowa: jeśli jakakolwiek pozioma para sąsiadujących komórek ma różnicę wysokości przekraczającą próg kąta naturalnego usypu arp (domyślnie 4, zakres 2–8), połowa nadwyżki jest natychmiast przenoszona. Fala powtarza się, dopóki nie pozostaną żadne naruszenia (ograniczone do 30 iteracji, aby zapobiec nieskończonym pętlom przy stromych warunkach początkowych). Odtwarza to charakterystyczną asymetrię prawdziwych wydm: łagodne zbocze nawietrzne, strome zbocze osypiskowe po stronie zawietrznej.

Emergentne morfologie

Trzy scenariusze początkowe ujawniają różne typy wydm znane z geomorfologii terenowej:

Rafa koralowa — notatki projektowe

Automat komórkowy o czterech stanach

Każda komórka na siatce 140×100 przyjmuje jeden z czterech dyskretnych stanów: Woda (pusta, renderowana jako tło oceanu), Koral (renderowany w odcieniu HSL właściwym dla kolonii, z zestawu 8 rodzin kolorystycznych), Wybielony (blady niebiesko-biały) lub Martwy/Glony (ciemny oliwkowo-zielony). Równoległa tablica odcieni przechowuje kolor każdej komórki koralowca, dzięki czemu tożsamość kolonii zachowuje się w trakcie wybielania i regeneracji.

Reguły sterowane temperaturą

Każda klatka losowo próbkuje 15 % wszystkich komórek i stosuje pięć reguł w zależności od bieżącej wartości suwaka temperatury:

Odtwarza to obserwowaną w terenie histerezę: umiarkowany stres termiczny powyżej 28 °C powoduje stopniowe wybielanie, które cofa się, jeśli temperatura spadnie, ale przedłużone narażenie na temperatury powyżej 30.5 °C powoduje trwałą śmiertelność i późniejsze przejęcie terenu przez glony.

Podwodne refleksy świetlne

Sześć animowanych kwadratowych krzywych Béziera z oscylującymi punktami kontrolnymi symuluje załamane wzory świetlne („refleksy”, ang. caustics) widoczne na płytkim dnie rafy. Są one rysowane z przezroczystością 6 % w kolorze błękitnym na gradiencie tła głębokiej wody, zanim na wierzchu zostanie wyrenderowana siatka komórek, dzięki czemu są widoczne wyłącznie przez komórki wody.

Tłumaczenia ukraińskie

Wszystkie trzy symulacje wychodzą z pełnymi wersjami ukraińskimi (UK) pod adresami /uk/harmonograph/, /uk/sand-dune/ oraz /uk/coral-reef/. Etykiety interfejsu, panele informacyjne, nazwy presetów, karty statystyk i tekst edukacyjny są w pełni przetłumaczone. Kod fizyki i renderowania jest identyczny na stronach EN i UK.

Co dalej — zapowiedź Fali 36

Lista pomysłów wciąż rośnie. Kandydaci na Falę 36 to między innymi:

Wszystkie symulacje z Fali 36 wyjdą ze stronami EN i UK w dniu premiery.