Strona główna Tworzenie Gier Kolaps funkcji falowej (WFC)

🗺️ Kolaps funkcji falowej (WFC)

Interaktywny algorytm Wave Function Collapse do proceduralnego generowania map kafelkowych. Kolaps komórek sterowany entropią z propagacją ograniczeń. Wybierz zestaw Land lub Dungeon, zmień rozmiar siatki i obserwuj powstawanie map krok po kroku.

Tworzenie Gier2DŁatwy60 FPS
wave-function-collapse ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

🧩 Kolaps funkcji falowej — generowanie proceduralne

Obserwuj, jak algorytm Wave Function Collapse (WFC) generuje w czasie rzeczywistym spójne mapy kafelkowe. Kafelki propagują ograniczenia sąsiedztwa po całej siatce, a entropia kieruje kolejnością kolapsu.

🔬 Co pokazuje

WFC utrzymuje superpozycję możliwych kafelków w każdej komórce. Komórka o najniższej entropii Shannona kolapsuje jako pierwsza (otrzymuje jednoznaczny kafelek). Propagacja ograniczeń eliminuje wtedy niekompatybilnych sąsiadów, zmniejszając entropię w całej siatce, aż wszystkie komórki zostaną rozwiązane.

🎮 Jak korzystać

Wybierz zestaw kafelków i rozmiar siatki. Kliknij Start, by obserwować kolaps sterowany entropią. Komórki kolapsują jedna po drugiej, a propagacja ograniczeń rozchodzi się na zewnątrz. Kolor wskazuje pozostałą entropię.

💡 Czy wiesz, że?

WFC stworzył Maxim Gumin w 2016 roku, inspirując się notacją mechaniki kwantowej. Obecnie jest wykorzystywany w grach komercyjnych (Townscaper, Bad North) oraz w projektowaniu architektonicznym do proceduralnego generowania otoczenia.

O tej symulacji

Ta demonstracja uruchamia algorytm Wave Function Collapse — metodę spełniania ograniczeń do proceduralnego generowania map. Każda komórka siatki zaczyna w superpozycji wszystkich dozwolonych kafelków. W każdym kroku symulacja kolapsuje komórkę o najniższej entropii — tu mierzonej po prostu jako liczba pozostałych kandydujących kafelków — a następnie propaguje ten wybór na zewnątrz, usuwając sąsiadów, których gniazda krawędzi już nie pasują. Zapożyczone słownictwo kwantowe jest metaforyczne, ale powstałe mapy są spójne i zaskakująco organiczne.

🔬 Co pokazuje

Solver WFC oparty na kafelkach na kwadratowej siatce. Każdy kafelek ma cztery gniazda krawędziowe (północ, wschód, południe, zachód); dwa kafelki mogą sąsiadować tylko wtedy, gdy ich stykające się gniazda mają wspólny identyfikator. Kolaps losowo wybiera komórkę o najmniejszej liczbie kandydatów spośród remisujących, ustala jeden kafelek, a krok propagacji oparty na stosie filtruje każdego dotkniętego sąsiada. Niespełnialne komórki są liczone jako sprzeczności.

🎮 Jak korzystać

Naciśnij New Map, by zresetować, Step, by skolapsować jedną komórkę, albo Auto, by uruchomić ciągły tryb. Zakładki Slow/Med/Fast ustawiają opóźnienie na krok (200, 30 lub 0 ms). Suwak Grid size obejmuje zakres od 10 do 50 komórek na bok, a zestawy kafelków możesz przełączać między Land i Dungeon. Panel Stats śledzi skolapsowane komórki, pozostałe oraz ewentualne sprzeczności.

💡 Czy wiesz, że?

Wave Function Collapse opublikował Maxim Gumin w 2016 roku, nazywając algorytm na cześć mechaniki kwantowej, w której mierzony stan osiada w jednym wyniku. Technika ta pojawia się dziś w komercyjnych tytułach, takich jak Townscaper i Bad North, a także w narzędziach architektonicznych i do syntezy tekstur.

Najczęściej zadawane pytania

Czym jest algorytm Wave Function Collapse?

To technika proceduralnego generowania, która wypełnia siatkę kafelkami tak, by każda para sąsiadów spełniała zestaw reguł sąsiedztwa. Każda komórka zaczyna z wszystkimi możliwymi kafelkami, a algorytm wielokrotnie ustala jedną komórkę i propaguje konsekwencje, aż cała siatka stanie się spójna. Nazwa to analogia do pomiaru kwantowego, a nie rzeczywista fizyka.

Jak działa tu krok kolapsu?

Solver szuka nieskolapsowanej komórki z najmniejszą liczbą pozostałych kandydujących kafelków, losowo rozstrzygając remisy. Przypisuje tej komórce jeden losowy kafelek spośród kandydatów, a następnie uruchamia przebieg propagacji: każdy sąsiad zachowuje tylko kafelki, których stykające się gniazdo krawędziowe pasuje, a każda zmiana rozchodzi się dalej za pomocą stosu.

Co robią sterowanie i zestawy kafelków?

New Map czyści i uruchamia od nowa, Step przesuwa o jeden kolaps, a Auto zapętla przy wybranej prędkości (200, 30 lub 0 ms na krok). Suwak siatki ustawia długość boku od 10 do 50 komórek. Land buduje teren wody, plaży, trawy, lasu i gór; Dungeon buduje puste przestrzenie, ściany, korytarze, komnaty, pochodnie i lawę, każdy z własną kompatybilnością gniazd.

Czym jest entropia w tym kontekście?

Entropia jest miarą tego, jak bardzo komórka jest wciąż nierozstrzygnięta. W tej symulacji jest przybliżana liczbą kafelków, jakimi komórka może się jeszcze stać; klasyczny algorytm używa entropii Shannona ważonej częstością kafelków. Kolapsowanie najpierw komórek o niskiej entropii utrzymuje spójność najbardziej ograniczonych regionów i zmniejsza szansę na ślepe zaułki.

Dlaczego czasem pojawiają się sprzeczności?

Sprzeczność występuje, gdy propagacja pozostawia komórkę bez żadnego prawidłowego kafelka, co oznacza, że żaden kafelek nie może zadowolić wszystkich sąsiadów. Ponieważ ta demonstracja używa prostego uporządkowanego kolapsu bez nawracania, rozwiązuje takie komórki, wymuszając kafelek zastępczy i licząc zdarzenie zamiast restartować. Bogatsze implementacje nawracają lub restartują, by zagwarantować w pełni poprawną mapę.

⚙ Pod maską

Interaktywny algorytm Wave Function Collapse do proceduralnego generowania map kafelkowych. Kolaps komórek sterowany entropią z propagacją ograniczeń. Wybierz zestaw Land lub Dungeon, zmień rozmiar siatki i obserwuj powstawanie map krok po kroku.

Canvas 2DProcedural GenerationAlgorithmWFCConstraintsGame Dev

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

Podobne symulacje