WaveFunctionCollapse
github.com
What it is
WaveFunctionCollapse is a free tool for generating bitmaps from local patterns in an input image. It limits output to NxN pixel patterns found in that input, with optional rotations and reflections to expand the pattern data. During generation, it selects an unresolved region with the lowest Shannon entropy, assigns a state, and propagates the resulting constraints. The simple tiled model instead starts from tiles and adjacency data, and a symmetry system can shorten adjacency lists for symmetrical tilesets. Constraints let the method be combined with other generative algorithms or manual creation. The README describes it as suited to game level generation and pixel art, but less suited to large full-color textures. Models can work in higher dimensions, including voxel examples. The project links to an interactive browser version and lists adaptations for Unity, Unreal Engine 5, Godot 4, and Houdini. It supports Linux, macOS, web, and Windows; listed export formats are PNG and TXT. Generation can stop at a contradiction without producing output, and the project describes determining whether a valid bitmap exists as NP-hard. The software is MIT-licensed; the image samples and tiles are not included in that license.
Spec sheet
- Purpose
- WaveFunctionCollapse generates bitmaps that are locally similar to an input bitmap.Read 30 Sep 2026 · github.com
- Platforms
- The project can be built from source with .NET Core for Windows, Linux, or macOS, and the README links to a browser version.Read 30 Sep 2026 · github.com
- Integrations
- The README lists adaptations for Unity, Unreal Engine 5, Godot 4, and Houdini.Read 30 Sep 2026 · github.com
- License
- The software is under the MIT License; the license states that the provided image samples and tiles are not part of the software.Read 30 Sep 2026 · github.com
- Founded
- 2016Read 28 Sep 2026 · github.com
- Maker
- The repository license credits Maxim Gumin with copyright in 2016.Read 30 Sep 2026 · github.com
- Browser version
- The README links to an interactive version that runs in a browser.Read 30 Sep 2026 · github.com
- Constraints
- The algorithm supports constraints and can be combined with other generative algorithms or manual creation.Read 30 Sep 2026 · github.com
- Generation method
- The algorithm repeatedly selects an unobserved region with the lowest Shannon entropy, collapses it to a state, and propagates the resulting information.Read 30 Sep 2026 · github.com
- Higher dimensions
- The README describes WFC models in higher dimensions, including voxel examples.Read 30 Sep 2026 · github.com
- Input augmentation
- The algorithm can optionally augment pattern data with rotations and reflections.Read 30 Sep 2026 · github.com
- Intended uses
- The README describes the method as well suited to game level generation and pixel art, and less suited to large full-color textures.Read 30 Sep 2026 · github.com
- Limit
- Generation can reach a contradiction and stop without producing output; determining whether a valid bitmap exists is described as NP-hard.Read 30 Sep 2026 · github.com
- Maker location
- Maxim Gumin’s GitHub profile lists Helsinki.Read 30 Sep 2026 · github.com
- Pattern matching
- The output is constrained to contain only NxN pixel patterns found in the input.Read 30 Sep 2026 · github.com
- Possible failure
- Generation can stop if propagation creates a contradiction, leaving no valid coefficients for a pixel.Read 30 Sep 2026 · github.com
- Release limitation
- The release page advises Linux and macOS users to download source from the repository because the bundled release source uses a Windows-only System.Drawing library.Read 30 Sep 2026 · github.com
- Release note
- The v1.00 release page says Linux and macOS users should download source from the repository because the bundled release source uses a Windows-only System.Drawing library.Read 30 Sep 2026 · github.com
- Symmetry
- A tile symmetry system can shorten adjacency lists for tilesets with symmetrical tiles.Read 30 Sep 2026 · github.com
- Tilemap generation
- The simple tiled model can be initialized with tiles and adjacency data instead of a sample bitmap.Read 30 Sep 2026 · github.com
Strong points and limits
Strong points
- Free and available on Linux, macOS, web, and Windows.
- Supports input patterns with optional rotations and reflections.
- Tilemap generation can use tiles and adjacency data.
- Can be combined with constraints, other algorithms, or manual work.
- Adaptations are listed for Unity, Unreal Engine 5, Godot 4, and Houdini.
Limits
- Generation can stop at a contradiction without output.
- Described as less suited to large full-color textures.
- Linux and macOS users are advised to download source from the repository for the v1.00 release.
Who it suits
It suits people making game levels, pixel art, tilemaps, or voxel examples who want to generate content from patterns and constraints. It is less suited to large full-color textures.
Verdict
WaveFunctionCollapse offers pattern-based bitmap and tilemap generation, with constraints and higher-dimensional examples. Its main caveat is that propagation can reach a contradiction and halt without a result.
Where Specifiction places it
- Game Map Generators#24 of 277.1