Wave Function Collapse (WFC)
November 22, 2025 ยท View on GitHub
Wave Function Collapse overlapping model implementation in Rust. Generates novel images by extracting NxN patterns from samples and synthesizing outputs that follow the same adjacency constraints.
Algorithm
The overlapping model extracts all NxN pattern tiles from a sample image and records which patterns can appear adjacent to each other. Starting from a completely undetermined output, it iteratively:
- Finds the cell with lowest entropy (fewest possible patterns)
- Collapses it to a random valid pattern
- Propagates constraints to neighboring cells
- Repeats until complete or a contradiction occurs
GUI
cargo run --release --bin wfc-egui

Results
Edge Constraints
Let's see how edge constraints affect the output.
Sample:
| Without constraints | Vertical constraints | Vertical + Sides constraints |
|---|---|---|
![]() | ![]() | ![]() |
License
MIT


