🧲 Wahadło magnetyczne
Wahadło kołyszące się nad magnesami zatrzymuje się przy jednym z nich — ale drobna zmiana punktu startu odwraca wynik, malując fraktalne baseny przyciągania. Puść ciężarek albo policz pełną mapę basenów.
O tej symulacji
Wahadło magnetyczne maluje słynne fraktalne baseny przyciągania całkowicie w shaderze fragmentów GLSL na Twoim GPU. Każdy piksel to pozycja startowa dla żelaznego ciężarka wahającego się nad pierścieniem magnesów; shader całkuje jego tłumiony ruch i koloruje piksel według tego, który magnes ostatecznie go przechwytuje. Drobne zmiany w punkcie startowym mogą odwrócić miejsce docelowe — więc granice między kolorowymi obszarami są nieskończenie zawiłe. Dostosuj liczbę magnesów, siłę, grawitację, tarcie i jakość całkowania, a następnie przewijaj i przeciągaj, aby odkrywać fraktalną krawędź.
Co pokazuje
Deterministyczny układ, który mimo to jest nieprzewidywalny: identyczna fizyka, ale magnes, na którym osiada ciężarek, dziko zmienia się wraz z pozycją startową. Kolorowe obszary to baseny przyciągania; ich fraktalne granice są geometrycznym odciskiem palca chaosu.
Jak korzystać
Wybierz 3 lub 4 magnesy, a następnie dostosuj siłę, grawitację/sprężynę (k), tarcie i wysokość. Zwiększ kroki całkowania dla czystszych basenów (wolniej). Przewiń, aby przybliżyć w stronę kursora, i przeciągnij, aby przesunąć widok w stronę granicy; Resetuj widok przywraca pełną płytę.
Czy wiesz, że...?
Na granicy basenu wszystkie kolory magnesów spotykają się w każdej skali. Przesunięcie o jeden piksel — lub jeden atom — może zmienić, który magnes wygrywa. To czuła zależność od warunków początkowych, serce teorii chaosu.
Najczęściej zadawane pytania
Na co patrzę?
Każdy piksel to inny punkt zwolnienia dla żelaznego ciężarka wahadła unoszącego się nad zestawem magnesów. Shader symuluje, gdzie kończy ciężarek, i koloruje piksel według tego magnesu. Obszary tego samego koloru to basen przyciągania, a splątane fraktalne linie między nimi oznaczają punkty startowe, których los jest wyjątkowo czuły na pozycję.
Dlaczego granice są fraktalne?
Ruch wahadła jest chaotyczny: trajektorie startujące dowolnie blisko siebie mogą się rozbiegać i kierować w stronę różnych magnesów. Ponieważ dzieje się to w każdej skali, linie podziału między basenami nigdy się nie wygładzają — przybliżanie zawsze ujawnia więcej przeplecionych kolorów, cechę charakterystyczną fraktala i czułej zależności od warunków początkowych.
Co zmieniają suwaki?
Siła magnesu ustawia przyciąganie każdego magnesu; grawitacja/sprężyna (k) to siła przywracająca w stronę środka; tarcie tłumi ruch, aby ciężarek w końcu się zatrzymał; wysokość łagodzi magnesy, aby ciężarek nigdy nie trafił w osobliwość. Kroki całkowania kontrolują jakość symulacji względem szybkości.
Dlaczego ograniczać kroki całkowania?
Shader uruchamia pełną pętlę symulacji dla każdego piksela, w każdej klatce. Więcej kroków oznacza dokładniejsze wykrywanie przechwycenia i ostrzejsze baseny, ale też znacznie więcej pracy GPU. Liczba kroków jest ograniczona do 400, aby obraz pozostał interaktywny nawet na skromnym sprzęcie; zwiększ ją dla czystszego obrazu, jeśli Twoje urządzenie sobie z tym poradzi.
Czy potrzebuje WebGL lub mocnego GPU?
Tak — wykorzystuje renderer WebGL Three.js z niestandardowym shaderem fragmentów GLSL. Każdy nowoczesny telefon lub laptop z obsługą WebGL go uruchomi. Współczynnik pikseli jest ograniczony do 1,5×, aby utrzymać wysoką liczbę klatek na ekranach o wysokim DPI. Jeśli canvas jest pusty, Twoja przeglądarka może mieć wyłączoną akcelerację sprzętową.
Wahadło kołyszące się nad magnesami osiada na jednym z nich — ale drobne zmiany w punkcie startowym odwracają wynik, malując fraktalny basen przyciągania. Upuść ciężarek lub oblicz pełną mapę basenów.
3D · Renderer Three.js / WebGL · cel 60 FPS · działa w całości po stronie klienta, bez instalacji