Devlog #89 – Wave 68: Barnes-Hut, Marching Squares, Próbkowanie Poissona, Nierówność Bella, Obwód Chua i Tłum Pieszych

Wave 68 przynosi sześć algorytmicznych i fizycznych ciężarowców: solver grawitacji O(n log n) oparty na drzewie czwórkowym, silnik izokonturów o 16 przypadkach, próbkowanie niebieskiego szumu Bridsona, żywy test CHSH nierówności Bella, kultowy atraktor chaosu podwójnej spirali oraz tłum pieszych społeczno-siłowy z emergentnym formowaniem pasów.

Wave 68 — 6 dodanych symulacji
609
Symulacji łącznie
6
Nowych w tej fali
68
Numer fali
89
Devlog nr

Nowe Symulacje

🌌

N-ciał Barnes-Hut

Grawitacja O(n log n) przez drzewo czwórkowe. Przybliżenie kryterium θ. Całkowanie velocity-Verlet. Kliknij, by podświetlić rozkład drzewa. Do 2000 cząstek.

〰️

Marching Squares

Tabela odniesień o 16 przypadkach z interpolacją liniową na krawędziach. Cztery pola skalarne: metabale, szum fBm, sinus i malowalny canvas. Wielopoziomowe konturowanie z dezambiguacją punktów siodłowych.

🔘

Próbkowanie Dysków Poissona

Algorytm O(n) Bridsona z siatką tła (komórka r/√2). Właściwość niebieskiego szumu: żadne dwie próbki nie są bliżej niż r. Widmo mocy radialnej porównuje z rozkładami losowymi i siatkowymi.

🎲

Nierówność Bella (CHSH)

Żywy eksperyment CHSH: kwantowy stan singletowy osiąga S ≈ 2√2 ≈ 2,828 (granica Tsirelsona) wobec klasycznej granicy zmiennych ukrytych |S| ≤ 2. Optymalne kąty 0°/45°/22,5°/67,5°.

🔌

Obwód Chua

Atraktor podwójnej spirali przez trzy sprzężone ODE dla V_C1, V_C2, I_L. Całkowanie RK4. Wykładnik Lapunowa metodą Benettina. Portrety fazowe i bifurkacja podwajania okresu.

🚶

Tłum Pieszych (Siła Społeczna)

Model Helbinga-Molnara: motywacja + odpychanie społeczne + odpychanie od ścian. Emergentne formowanie pasów, zatory łukowe przy wąskich gardłach, panika „szybciej znaczy wolniej". Do 200 agentów.

N-ciał Barnes-Hut: Grawitacja w Drzewie Czwórkowym

Bezpośrednia grawitacja N-ciał jest piękna, ale brutalna: każda cząstka musi oddziaływać z każdą inną, co daje O(n²) ewaluacji siły na krok czasowy — n(n−1)/2 par dla n=2000 to niemal 2 miliony obliczeń na klatkę przy 60 fps. Barnes-Hut redukuje to do O(n log n), używając rekurencyjnego drzewa czwórkowego (ósemkowego w 3D).

Kryterium θ

Każdy węzeł wewnętrzny przechowuje całkowitą masę i środek masy wszystkich zawartych cząstek. Przy obliczaniu siły na cząstkę, zamiast wchodzić rekurencyjnie w węzeł, zastępujesz go jego agregatem, jeśli stosunek s/d spełnia warunek s² < θ²d² — gdzie s to długość boku węzła, a d to odległość od cząstki do środka masy węzła. Mniejsze θ oznacza większą dokładność, ale więcej ewaluacji; θ = 0,5 to standardowy kompromis.

Całkowanie Velocity-Verlet

Pozycje i prędkości są przesuwane schematem velocity-Verlet: x(t+dt) = x(t) + v(t)dt + ½a(t)dt², następnie siły są ponownie ewaluowane, a na końcu v(t+dt) = v(t) + ½(a(t)+a(t+dt))dt. To integrator symplektyczny — zachowuje cieniowy hamiltonian, zapobiegając sztucznemu dryfowi energii przy długich przebiegach. Drzewo jest przebudowywane co klatkę, ponieważ cząstki poruszają się nieprzerwanie.

Marching Squares: Tabela Odniesień Izokonturów

Marching Squares wydobywa izokontury z 2D pola skalarnego, przetwarzając każdą komórkę siatki niezależnie. Każda komórka ma cztery rogi — każdy albo powyżej, albo poniżej wartości izo — co daje 2⁴ = 16 odrębnych przypadków topologicznych.

Tabela 16 Przypadków i Interpolacja Liniowa

Wstępnie obliczona tabela odniesień mapuje 4-bitową maskę bitową rogów na pary przecięć krawędzi. Dla każdej aktywnej krawędzi przecięcie jest umieszczane za pomocą interpolacji liniowej: t = (iso − v₀) / (v₁ − v₀) wzdłuż krawędzi, dając gładkie kontury zamiast poszarpanych granic pikseli.

Dezambiguacja Punktów Siodłowych

Przypadki 5 i 10 są niejednoznaczne — łączność diagonalna jest niezdefiniowana. Symulacja rozwiązuje to, próbkując bilinearną wartość centralną: jeśli centrum jest powyżej progu, kontur łączy się jednym sposobem; poniżej — drugim. Zapobiega to artefaktom topologicznym, jak fantomowe rozłączenia w polach metabali.

Próbkowanie Dysków Poissona: Algorytm Bridsona

Próbkowanie dysków Poissona produkuje zbiory punktów, w których żadne dwa punkty nie są bliżej niż minimalna odległość r, jednocześnie wypełniając przestrzeń możliwie gęsto. Rezultatem jest „niebieski szum" — widmo mocy płaskie w zakresie średnich częstotliwości, co czyni je percepcyjnie idealnym do ditheringu, kropkowania i generowania terenu.

Siatka Tła O(n)

Algorytm Bridsona z 2007 roku osiąga O(n) (liniowo względem rozmiaru wyjścia) dzięki siatce tła o rozmiarze komórki r/√2. Każda komórka przechowuje co najwyżej jedną próbkę; wyszukiwania sąsiadów wymagają sprawdzenia tylko stałego okna 5×5. Lista aktywna rośnie, gdy każda zaakceptowana próbka generuje do k=30 kandydackich prób pierścieniowych w zakresie [r, 2r].

Weryfikacja Niebieskiego Szumu

Widmo mocy radialnej zbioru próbek jest pokazane obok próbkowania losowego jednorodnego i regularnej siatki. Dyski Poissona wykazują charakterystyczne płaskie plateau w zakresie średnim — to definiująca właściwość niebieskiego szumu, wskazująca brak niskoczęstotliwościowego zbijania się i wysokoczęstotliwościowego aliasingu.

Nierówność Bella: Korelacje Kwantowe Przekraczają Granice Klasyczne

Twierdzenie Johna Bella z 1964 roku dowiodło, że żadna lokalna teoria zmiennych ukrytych nie może odtworzyć wszystkich przewidywań mechaniki kwantowej. Nierówność CHSH (Clausera-Horne'a-Shimony'ego-Holta) czyni to eksperymentalnie testowalnym: zmierz kombinację S = |E(a,b) − E(a,b') + E(a',b) + E(a',b')|.

Granice Kwantowe vs Klasyczne

Dla stanu singletowego |ψ⁻⟩ = (|01⟩ − |10⟩)/√2 kwantowa funkcja korelacji to E(a,b) = −cos(a − b). Przy optymalnych kątach pomiaru a=0°, a'=45°, b=22,5°, b'=67,5° daje to S = 2√2 ≈ 2,828 — granicę Tsirelsona, maksimum dozwolone przez mechanikę kwantową. Każdy klasyczny model zmiennych ukrytych jest ograniczony do |S| ≤ 2.

Żywy Eksperyment

Symulacja próbkuje losowe wartości λ dla modelu klasycznego oraz kwantowe losowe rotacje dla modelu kwantowego. Obie wartości S są śledzone przez N prób i zbiegają do swoich teoretycznych granic w miarę wzrostu N, wizualnie demonstrując lukę, której żaden model klasyczny nie może pokonać.

Obwód Chua: Najprostszy Obwód Chaotyczny

Obwód Leona Chua z 1983 roku to kanoniczne laboratorium elektronicznego chaosu. Produkuje atraktor dziwny podwójnej spirali — dwie splecione spirale w przestrzeni fazowej — z zaledwie trzech elementów pasywnych i jednego nieliniowego rezystora (diody Chua).

ODE i Dioda Chua

Dynamiką rządzą trzy sprzężone ODE:

dV_C1/dt = (1/C1) · [G(V_C2 − V_C1) − f(V_C1)]
dV_C2/dt = (1/C2) · [G(V_C1 − V_C2) + I_L]
dI_L/dt  = −(1/L) · V_C2

gdzie f(V) to przedziałami liniowa charakterystyka I-V diody Chua: f(V) = m₁V + ½(m₀−m₁)(|V+1|−|V−1|). Symulacja całkuje metodą RK4 ze stałym krokiem czasowym, renderując trajektorie bezpośrednio na canvas.

Wykładnik Lapunowa i Bifurkacja

Największy wykładnik Lapunowa λ₁ jest estymowany metodą dwóch trajektorii Benettina: druga trajektoria startuje z nieskończenie małym przesunięciem, a jej logarytmiczna dywergencja jest uśredniana i okresowo renormalizowana. λ₁ > 0 potwierdza chaos. Gdy parametr C1 jest przemiatany, symulacja pokazuje sekwencję okres-1 → okres-2 → okres-4 → chaos (kaskada podwajania okresu).

Tłum Pieszych: Model Siły Społecznej

Model siły społecznej Helbinga-Molnara (1995) traktuje ruch pieszych jako dynamikę newtonowską z siłami psychospołecznymi. Każdy agent ma pożądaną prędkość w stronę celu i doświadcza odpychania od innych pieszych i ścian.

Składowe Siły

Całkowita siła na agenta i to suma trzech wyrazów:

Zjawiska Emergentne

Magia modelu siły społecznej polega na tym, co wyłania się bez jawnych reguł. W dwukierunkowym korytarzu przeciwne strumienie samoistnie segregują się w stabilne pasy — minimalizując czołowe spotkania. Przy wąskim gardle powstaje łuk wywołany ciśnieniem u wyjścia, uwalniający się okresowo w falach. W trybie paniki podniesienie pożądanej prędkości (efekt „szybciej znaczy wolniej") zmniejsza przepustowość, ponieważ łukowanie staje się poważniejsze, a agenci blokują się nawzajem mocniej.

Co Dalej

Wave 69 przynosi algorytmy otoczki wypukłej (skan Grahama vs marsz Jarvisa vs Quickhull porównane obok siebie), kwantowe wyszukiwanie Grovera z geometryczną wizualizacją amplitudy, dynamikę meandrowania rzeki z formowaniem jezior starorzeczy, fizykę liny Verlet, klasyczny perceptron Rosenblatta oraz rezonans orbitalny Keplera z grupowaniem koniunkcji.

← Devlog #88 Devlog #90 →