Dodatek Attractor Builder został opracowany jako narzędzie umożliwiające numeryczną integrację układów równań różniczkowych i generowanie ich trajektorii bezpośrednio w środowisku Blender 4.5+. Pozwala wykonywać własne eksperymenty, wizualizować atraktory, eksportować dane, a także tworzyć animowane formy w pełnym 3D. Dodatek jest darmowy i przeznaczony zarówno dla osób badających układy dynamiczne, jak i twórców wykorzystujących atraktory w grafice, animacji lub sztuce generatywnej.
Instalacja
Zalecana (Blender Extensions)
1. Otwórz Blender i przejdź do: Edit → Preferences → Extensions.
2. Wyszukaj Attractor Builder i kliknij Install.
3. Po instalacji aktywuj rozszerzenie.
Instalacja ręczna (z GitHub)
1. Pobierz plik
attractor_builder.zip
z repozytorium GitHub.
2. W Blenderze otwórz: Edit → Preferences → Extensions.
3. Kliknij Install from Disk… i wybierz pobrany plik .zip.
4. Po instalacji aktywuj rozszerzenie.
Panel dodatku pojawi się w zakładce N-panel → Attractor.
Interfejs
Zakładka Default korzysta z wbudowanej biblioteki układów (Lorenz, Chen, Lü itd.)
wraz z gotowymi parametrami startowymi. Zakładka Custom jest przeznaczona
do definiowania własnych równań i parametrów.
Default Library.
Lista rozwijana zawiera zestaw zdefiniowanych atraktorów.
Po wybraniu systemu poniżej automatycznie pojawia się jego zapis
w postaci równań oraz domyślny zestaw parametrów.
Equations: równania różniczkowe wybranego układu, zapisane w postaci trzech wyrażeń
określających pochodne ẋ, ẏ i ż.
Dla zachowania bezpieczeństwa i spójności z modułem Custom
można używać wyłącznie zmiennych x, y, z
oraz funkcji matematycznych: sin, cos, tan,
asin, acos, atan, sinh, cosh,
tanh, exp, log, sqrt, pow, fabs.
Dozwolone są standardowe operatory arytmetyczne i unarne
(+, -, *, /, **, %,
oraz unarne - i + przy liczbach).
Parameters: lista parametrów (np. a, b, c dla Lorenza)
wraz z ich wartościami, które można edytować, wpływając bezpośrednio na kształt generowanej trajektorii.
Przycisk Tips odsyła do krótkich wskazówek, a Copy
przenosi układ równań wraz z bieżącymi parametrami do modułu Custom,
umożliwiając ich dalszą edycję i tworzenie własnych systemów.
Simulation Settings. Blok ustawień symulacji: stan początkowy, metoda integracji oraz odpowiadające jej parametry. Initial conditions: Współrzędne początkowe punktu: x₀, y₀, z₀. Od nich rozpoczyna się numeryczna integracja trajektorii. Integration Method. Lista rozwijana z wyborem metody numerycznej (Euler, Heun, RK4, RKF45, DP5):
Fixed dt. Dla metod o stałym kroku (Euler, Heun, RK4) dostępne są pola umożliwiające ustawienie: długości kroku czasowego Time Step (dt), liczby kroków integracji Steps, długości fazy rozgrzewki Burn-in oraz współczynnika skalowania Scale.
Adaptive dt. Obejmuje dwie metody adaptacyjne (RKF45 oraz DP5), w których użytkownik nie określa stałego kroku czasowego. Zamiast tego algorytm dobiera dt automatycznie na podstawie tolerancji błędu Tolerance oraz podanego zakresu dopuszczalnych wartości Min Step i Max Step.
Output.
Przycisk Build Attractor generuje trajektorię w postaci obiektu typu
Curve (dokładnie: Poly Curve) o nazwie podanej w polu
Output Name — domyślnie Attractor.
Dopiero po wygenerowaniu atraktora dostępna staje się sekcja Raw data.
Przycisk Points tworzy obiekt typu Mesh o nazwie RawPoints,
umożliwiający podgląd wszystkich wygenerowanych punktów.
Przycisk Export zapisuje te dane do pliku CSV, co pozwala na dalszą analizę wyników
symulacji w Pythonie, MATLAB-ie lub Excelu. Plik CSV zawiera kolumny
steps, dt, x, y, z.
Pierwszy wiersz odpowiada warunkom początkowym wprowadzonym przez
użytkownika w sekcji Initial conditions, a pozostałe wiersze
zawierają współrzędne punktów trajektorii uzyskane w kolejnych krokach integracji.
Informacja o dt ma szczególne znaczenie w metodach adaptacyjnych, w których
krok czasowy jest wyznaczany przez algorytm.
Post-Processing Tools. Sekcja ta pojawia się dopiero po wygenerowaniu atraktora i umożliwia prostą obróbkę uzyskanej krzywej. Narzędzie Trim pozwala skrócić trajektorię, usuwając jej początkową lub końcową część poprzez ustawienie zakresu Start i End; po zatwierdzeniu przyciskiem Apply Trim obiekt zostaje trwale zaktualizowany. Funkcja Simplify umożliwia redukcję liczby punktów krzywej typu Poly Curve, co zmniejsza złożoność obiektu i ułatwia dalszą pracę; działa ona niezależnie od operacji przycinania. Z kolei narzędzie Smooth to Bezier konwertuje krzywą poli-liniową na krzywą Béziera, wykorzystując wbudowany algorytm wygładzający, a jego intensywność kontrolowana jest parametrem Fidelity. Wszystkie trzy operacje pozwalają szybko przygotować trajektorię do dalszej edycji, animacji lub renderingu.
Custom. Ten tryb umożliwia definiowanie i zapisywanie własnych układów równań różniczkowych, które następnie można integrować i wizualizować tak samo jak systemy z biblioteki wbudowanej. Sekcja ta jest przeznaczona dla użytkowników chcących eksperymentować z własnymi modelami, modyfikować istniejące układy lub dokumentować różne warianty parametrów.
Custom Library.
Lista rozwijana wyświetlająca zapisane wcześniej układy wraz z ich parametrami.
Elementy pojawiają się w kolejności od najnowszych, dzięki czemu łatwo wrócić do ostatnio edytowanych modeli.
Wprowadzając własne równania, należy pamiętać, że parser akceptuje wyłącznie bezpieczny podzbiór wyrażeń:
zmienne x, y, z; funkcje matematyczne
sin, cos, tan, asin, acos, atan,
sinh, cosh, tanh, exp, log, sqrt,
pow, fabs; oraz standardowe operatory arytmetyczne:
+, -, *, /, **, %,
a także unarne + i -. Użycie innych struktur składni
spowoduje odrzucenie równania.
Detect Parameters.
Przycisk ten analizuje wprowadzone równania, wykrywa wszystkie występujące
w nich symbole (z wyłączeniem x, y, z) i na ich podstawie tworzy listę parametrów.
Jest to krok niezbędny — bez wykrycia parametrów i poprawnej struktury równań
nie jest możliwe przeprowadzenie symulacji.
Po pomyślnej detekcji parametry wyświetlane są w tabeli poniżej, gdzie można nadać im wartości
początkowe, tak jak w trybie Default.
Save/Notes/Edit/Delete.
Po wykryciu parametrów układ można zapisać pod dowolną nazwą, co dodaje go do listy
Custom Library. Wszystkie zapisane systemy przechowywane są w jednym pliku
.json wewnątrz dodatku, dzięki czemu pozostają dostępne między sesjami Blendera.
Do każdego zapisanego układu można przypisać własne notatki, np. opis pochodzenia systemu,
uwagi dotyczące stabilności, typowe wartości parametrów czy wyniki eksperymentów numerycznych.
Przyciski Note oraz Edit umożliwiają odpowiednio przeglądanie i edytowanie notatek,
natomiast Delete usuwa cały zapisany system wraz z odpowiadającym mu wpisem w pliku JSON.