212 symulacji w rok: jak rosła biblioteka

Na początku 2025 roku na tej stronie było 40 symulacji przeglądarkowych. W marcu 2026 jest ich 212 — wszystkie gotowe, wszystkie z tłumaczeniami ukraińskimi, wszystkie z kompletnymi pakietami SEO. Oto szczere spojrzenie na sesje deweloperskie, decyzje dotyczące renderowania, kategorie, których wypełnienie zajęło najdłużej, i to, co zrobiłbym inaczej.

212
Symulacji łącznie
39
Sesji deweloperskich
26
Aktywnych kategorii

Punkt startowy

Projekt rozpoczął się w styczniu 2024 roku od garści eksperymentów z Three.js — płynu SPH, płyt tektonicznych, renderera galaktyki. Na początku 2025 roku było już około 40 symulacji z wstępną strukturą kategorii. Większość była w 3D WebGL; większość dotyczyła klasycznej fizyki. Luki były oczywiste: brak chemii, brak biologii, brak ekonomii, brak elektroniki, brak przetwarzania sygnałów.

Rok od marca 2025 do marca 2026 to zmienił. Pracując w skupionych sesjach deweloperskich — każda dodawała 2–5 symulacji naraz — biblioteka urosła z 40 do 212. Wzorzec był celowy: ukończ kategorię całkowicie przed przejściem do następnej. Żadnych stałych kart „wkrótce". Albo symulacja działa na żywo, albo nie pojawia się w kategorii.

Decyzja dotycząca renderowania

Największą zmianą architektoniczną roku było odejście od domyślnego wyboru Three.js do wszystkiego. Three.js jest potężny — ale niesie ze sobą narzut konfiguracyjny i jest naprawdę niezbędny tylko dla geometrii 3D.

Punktem zwrotnym była budowa symulatora epidemii (model SEIR). Była to czysta symulacja Canvas 2D agentów 2D na płaskiej płaszczyźnie. Wersja Three.js oznaczałaby 200 linii kodu konfiguracji sceny bez żadnej korzyści wizualnej. Wersja Canvas 2D miała 40 linii i działała przy 60 FPS z 500 agentami.

Po tym reguła stała się prosta:

Mniej więcej 70% z 212 symulacji to Canvas 2D. To zaskakuje ludzi. Biblioteka wygląda jak projekt WebGL, ale większość symulacji jest rysowana za pomocą ctx.fillRect i ctx.arc.

Ukończone kategorie — w kolejności

Oto każda kategoria, która osiągnęła status „zero kart wkrótce" w ciągu roku, w kolejności ukończenia:

🏛️ Matematyka11 sym.
🌤️ Pogoda7 sym.
⚙️ Fizyka codzienna10 sym.
🚀 Lotnictwo i kosmonautyka6 sym.
🌊 Dynamika płynów7 sym.
🔐 Kryptografia4 sym.
⚛️ Komputery kwantowe6 sym.
☢️ Fizyka jądrowa4 sym.
🤖 Robotyka6 sym.
🏃 Nauka o sporcie6 sym.
🧬 Biologia molekularna5 sym.
👁️ Percepcja5 sym.
🧠 Uczenie maszynowe5 sym.
🚗 Transport8 sym.
🔌 Elektronika8 sym.
📶 Sygnały12 sym.
💰 Ekonomia8 sym.
🌍 Społeczeństwo15 sym.

Najtrudniejsze kategorie

Przetwarzanie sygnałów (12 symulacji)

Sygnały stały się największą pojedynczą kategorią. Filtry cyfrowe, modulacja OFDM, pętle synchronizacji fazowej, analizatory widma FFT, charakterystyki promieniowania anten — każda z nich wymagała zrozumienia naprawdę złożonej matematyki inżynierskiej. Sam projektant filtrów cyfrowych wymagał implementacji projektowania filtrów Butterwortha i Czebyszewa, wykresów Bodego i diagramów zer-biegunów w płaszczyźnie Z. Dopracowanie matematyki DSP zajęło więcej czasu niż jakakolwiek inna kategoria.

Kryptografia (4 symulacje)

Kryptografia przedstawiła inne wyzwanie: matematyka jest dokładna. Nie można przybliżać potęgowania modularnego. Symulator wymiany kluczy RSA używa BigInt JavaScriptu do całej arytmetyki modularnej — kluczowe, ponieważ liczby pierwsze RSA mają setki bitów długości, a zwykłe liczby zmiennoprzecinkowe tracą precyzję w spektakularny sposób.

// Bezpieczne potęgowanie modularne z BigInt
function modpow(base, exp, mod) {
  let result = 1n;
  base = base % mod;
  while (exp > 0n) {
    if (exp % 2n === 1n) result = (result * base) % mod;
    exp = exp >> 1n;
    base = (base * base) % mod;
  }
  return result;
}

Komputery kwantowe (6 symulacji)

Komputery kwantowe mają niezwykłą właściwość bycia jednocześnie głęboko koncepcyjnymi i wizualnie abstrakcyjnymi. Sfera Blocha (Three.js, prawdziwe 3D) była najbardziej intuicyjna — można dosłownie oglądać, jak wektor stanu kubitu obraca się w miarę stosowania bramek. Algorytm Grovera i splątanie kwantowe były w Canvas 2D, pokazując histogramy amplitud i rozkłady prawdopodobieństwa stanów Bella.

Test nierówności CHSH w symulatorze splątania był szczególnym powodem do dumy: oblicza S = 2√2 ≈ 2,828 > 2, demonstrując, że mechanika kwantowa łamie klasyczne granice zmiennych ukrytych.

Decyzja o tłumaczeniu ukraińskim

Każda symulacja na tej stronie ma dwie wersje: angielską (/sim-name/) i ukraińską (/uk/sim-name/). To była celowa decyzja podjęta wcześnie i nigdy nie cofnięta, mimo znacznego dodatkowego nakładu pracy.

Wersje ukraińskie nie są tłumaczeniami maszynowymi — to pełne przeróbki etykiet interfejsu, opisów symulacji, treści edukacyjnych i metadanych na naturalny ukraiński. Linki hreflang, znaczniki og:locale i właściwości inLanguage w JSON-LD są poprawne dla obu wersji. Dla solowego projektu to znaczne zobowiązanie na symulację.

Powód jest prosty: Ukraina ma dużą populację osób z wykształceniem technicznym, ukraińskojęzyczne treści edukacyjne dotyczące interaktywnej fizyki są naprawdę rzadkie, a nazwa strony to już mysimulator.uk — TLD jest deklaracją intencji.

Co zrobiłbym inaczej

1. Zacząłbym od Canvas 2D wcześniej

Pierwsze 30 symulacji domyślnie korzystało z Three.js, nawet gdy wystarczyłoby 2D. Refaktoryzacja niektórych z nich później do Canvas 2D pokazała, o ile prostszy mógł być kod. Zaczynając od nowa, ustaliłbym regułę „Three.js tylko dla prawdziwego 3D" od pierwszego dnia.

2. Budowałbym artykuły treściowe równolegle

Strona ma 502 artykuły treściowe (251 EN + 251 UK) wyjaśniające matematykę stojącą za każdą symulacją. Większość powstała masowo, a nie równolegle z każdą symulacją. Pisanie ich w tym samym czasie dałoby głębsze artykuły — kontekst intelektualny jest najświeższy zaraz po ukończeniu implementacji.

3. Zaplanowałbym kategorie przed budową symulacji

Kilka wczesnych symulacji nie należało do żadnej kategorii i trzeba było je retrospektywnie dopasować. Osiem symulacji było niewidocznie osieroconych — niepołączonych z żadną stroną kategorii — i odkryto je dopiero podczas audytu nawigacji miesiące później. Plan kategorii przed budową całkowicie by temu zapobiegł.

Co dalej

Przy 212 symulacjach biblioteka ma dobre pokrycie fizyki, biologii, informatyki, ekonomii i inżynierii. Oczywiste luki to:

Celem na kolejny rok niekoniecznie jest więcej symulacji — to lepsze symulacje. Niektóre z wczesnych, budowane, gdy projekt był młody, zasługują na drugie spojrzenie. Fizyka wyższej wierności, bogatsze interfejsy, większa głębia edukacyjna.

Stan obecny (marzec 2026): 212 symulacji · 26 aktywnych kategorii · 502 artykuły treściowe · wersje EN + UK wszędzie · nawigacja bez osieroconych stron · pełne SEO na każdej stronie.