← Wybrane projekty

GENESIS

Sztuczny ekosystem, który możesz obserwować, zapisywać i uruchamiać ponownie.

Kod dostępnyObserwuj ekosystem ↓
  • JavaScript
  • WebGL2
  • Web Workers
Jak to działa
Web Workers
Oddziela obliczenia ekosystemu od jego rysowania.
WebGL2 / Canvas 2D
Rysuje organizmy; gdy WebGL2 nie działa, korzysta z Canvas.
Seed / snapshot
Zapisuje stan symulacji wraz ze stanem generatora liczb losowych, aby można było wznowić ten sam przebieg.
Na tej stronie

Świat, do którego możesz wrócić

GENESIS śledzi organizmy, których ciała i sieci neuronowe mogą zmieniać się w wyniku rozmnażania. W świecie pojawia się pożywienie, organizmy zużywają energię na ruch, a linie, które przetrwają, wydają potomstwo. Obraz na ekranie jest jednym z widoków tego procesu. Zapisany stan zawiera dane potrzebne do jego kontynuacji: organizmy, zasoby, konfigurację i wartości wewnętrzne, które wyznaczają następny krok.

Punkt kontrolny pozwala wielokrotnie badać ten sam stan początkowy. Umożliwia postawienie dwóch różnych pytań: czy świat bez zmiany warunków będzie kontynuował identycznie oraz co się zmieni po zmianie wybranego czynnika nacisku. Ta strona zaczyna od pierwszego pytania. Pełne obserwatorium udostępnia też porównywalne eksperymenty populacyjne z wariantem kontrolnym i interwencją.

Uruchom ten sam zapisany stan dwa razy

Uruchom dwie kopie tego samego zapisanego świata i sprawdź, czy po kolejnych krokach ich pełne zapisane stany są zgodne.

Uruchom ten sam świat dwa razy

Wykonaj 24 kroki w obu kopiach. Czy zapisane stany będą zgodne?

Pierwsze uruchomienie wczytuje około 2,12 MB. Eksperyment zatrzymuje się, gdy strona jest niewidoczna.

Możesz zacząć. Zapisany świat nie został jeszcze wczytany.

Świat A

0 / 24

0 / 24 ticki

Świat B

0 / 24

0 / 24 ticki

Ten test obejmuje jeden zapisany świat i krótki dalszy przebieg w Twojej obecnej przeglądarce.

Szczegóły porównania i plik z wynikiem

Odtwórz stan dla ziarna 42 przy ticku 1 200, a następnie przesuń każdą kopię o 24 ticki. Porównanie obejmuje całe zapisane stany, w tym konfigurację, stan generatorów losowych, wartości sieci neuronowych i kolejność slotów zasobów. Nie potwierdza zgodności między różnymi silnikami przeglądarek.

Świat A · Pełny stan · SHA-256

—

Świat B · Pełny stan · SHA-256

—
Jak to działa i co sprawdzono

Naciśnij Uruchom, aby wczytać dostarczony punkt kontrolny dla ziarna 42 przy ticku 1 200. Dwa oddzielne workery odtwarzają go kolejno. Każdy wykonuje dokładnie 24 ticki symulacji, po czym zwraca cały zapisany stan świata. Dwie wartości SHA-256 poniżej są obliczane z tych zwróconych stanów. Liczebność populacji daje czytelne podsumowanie, ale porównanie skrótów obejmuje znacznie więcej niż samą populację.

Oczekiwanym wynikiem jest zgodność. Przerwany przebieg nie daje ukończonego porównania, a przycisk Uruchom ponownie zaczyna od tego samego zapisanego wejścia. Ukończony wynik można pobrać jako JSON ze skrótami stanów początkowych i końcowych. Workery zatrzymują się po ukryciu strony, więc eksperyment postępuje tylko wtedy, gdy zdecydujesz się pozostawić ją widoczną.

Co obejmuje porównanie

Stan w wersji 4 zawiera oba strumienie liczb losowych, w tym niewykorzystaną próbkę rozkładu normalnego; rejestr przypisujący numery innowacji połączeniom neuronowym; bieżące wartości sieci neuronowej każdego organizmu; oraz kolejność wolnych slotów zasobów. Podczas obliczania skrótu tablice zachowują swoją kolejność. Klucze obiektów są sortowane, aby sama kolejność zapisu kluczy JSON nie decydowała o zgodności równoważnych rekordów.

Porównanie obejmuje stan świata określony przez specyfikację serializacji. Historia wykresów i metadane wyświetlania pozostają poza tym zakresem. Zgodność potwierdza wynik dla tej kompilacji, punktu kontrolnego, środowiska przeglądarki i odcinka kontynuacji. Nie potwierdza identycznych trajektorii w różnych silnikach przeglądarek ani nie przewiduje wszystkich późniejszych wyników. Kod źródłowy i wynik do pobrania jasno określają ten zakres.

Zachowaj każdą zapisaną gałąź

Podążaj gałęziami od pierwszego gatunku. Zapis tego świata obejmuje zarówno gatunki żyjące, jak i wymarłe.

71 rekordów gatunków przy ticku 9000; 42 gatunki obecne i 29 wymarłych.
Wszystkie rekordy z dostarczonego świata seed-42 w kroku 9 000. Przewiń, aby przyjrzeć się poszczególnym gatunkom. Otwórz pełny diagram ↗ · JSON ↓
Jak to działa i co sprawdzono

Przy ticku 9 000 dostarczony punkt kontrolny dla ziarna 42 zawiera 71 rekordów gatunków: gatunek założycielski i 70 późniejszych odgałęzień. Czterdzieści dwa gatunki nadal występują, a 29 wymarło. Najgłębsza ścieżka od korzenia zawiera trzy krawędzie rodzic–potomek. Diagram powstaje z tych zapisów i obejmuje także gatunki, których liczebność nigdy nie przekroczyła jednego osobnika.

Położenie w poziomie odpowiada tickowi symulacji. Połączenie zaczyna się przy zapisanym ticku powstania gatunku potomnego. Linia żyjącego gatunku biegnie do ticku 9 000, a wymarłego kończy się przy ostatnim ticku, w którym go odnotowano. Koła i krzyżyki odróżniają zakończenia, bez polegania wyłącznie na kolorze. Dane do pobrania zawierają identyfikatory i wartości ticków stojące za każdą linią.

Co przedstawiają gałęzie

Gdy przypisywany jest nowy gatunek, jego rekord zachowuje gatunek rozmnażającego się organizmu. Jest to zapis rozgałęzień gatunków, a nie pełna lista rodziców każdego osobnika. W rozmnażaniu może uczestniczyć także drugi partner. Reprezentatywny genom również należy do rekordu gatunku; nie śledzi każdego późniejszego osobnika wraz ze zmianami populacji.

Połączenia neuronowe mają identyfikatory innowacji, dzięki którym podczas rekombinacji można dopasować odpowiadające sobie geny. Wspólne identyfikatory opisują relację strukturalną wewnątrz tej symulacji. Można je badać liczbowo, lecz same nie określają podobieństwa zachowań dwóch organizmów ani podobieństwa brzmienia po przekształceniu ich w muzykę. Diagram rozgałęzień uwidacznia zapisaną relację bez potrzeby przyjmowania któregokolwiek z tych twierdzeń.

Jak sprawdzono ponowne uruchomienie

Trzy dostarczone punkty kontrolne z ticków 1 200, 2 400 i 9 000 niezależnie odtworzono i kontynuowano przez 100 ticków w oddzielnych workerach Node v22.11.0. Każda para uzyskała identyczne skróty pełnych stanów. Test wznawiał symulację z dostarczonych plików; nie przeliczał całej trajektorii 9 000 ticków od początkowego ziarna. Eksperyment na stronie wykonuje własne, krótsze porównanie w bieżącej przeglądarce.

Liczby gatunków przeliczono osobno z punktu kontrolnego przy ticku 9 000, a przynależność wszystkich 5 587 organizmów zgadzała się z zapisanymi liczebnościami gatunków. Skompresowane dane wejściowe są zgodne z zadeklarowanym SHA-256. Statyczny diagram nie potrzebuje workera symulacji; uruchomienie eksperymentu jest świadomym wyborem. Dzięki temu można spokojnie czytać artykuł, mając bezpośrednią drogę od każdego podanego wyniku do jego danych i metody.

Przejrzyj kod symulacji ↗

Podstawy i metoda weryfikacji

Uwagi do weryfikacji

Dostarczony zapis dla ziarna 42 i kroku 9 000 zawiera 71 gatunków: 42 żyjące i 29 wymarłych. Przynależność wszystkich 5 587 organizmów zgadza się z liczebnością gatunków. Powiązania rodzicielskie opisują rozgałęzienia gatunków, a nie pełną genealogię osobników.

Każdy z trzech dostarczonych zapisów dał zgodne stany po kolejnych 100 krokach w oddzielnych workerach Node 22.11.0. Przeglądarka wykonuje własne porównanie 24 kroków. Testy wznawiają zapisane światy i dotyczą tych konkretnych przebiegów.

Po uruchomieniu pobierany jest skompresowany zapis o rozmiarze 2,12 MB. Jego SHA-256 zgadza się z dostarczonym manifestem.

Pobierz zapis weryfikacji ↓

Obserwuj cały ekosystem

Demo otwiera się tutaj. Świat działa w Twojej przeglądarce.

Film · 4:30

Obejrzyj w YouTube ↗