Skip to content
The WaveFunctionCollapse algorithm in Julia.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Fill in usage.ipynb. Jan 2, 2019


WaveFunctionCollapse procedurally generates arbitrarily sized images based on a single example image. It is based on



Start Julia. Add WaveFunctionCollapse.jl with

] add


Start Julia.

> using WaveFunctionCollapse
# ...warnings...
> generate("samples/Flowers.png")
# output Array{RGB{Float32}, 2}

For more details and example, see


The WaveFunctionCollapse algorithm was invented by mxgmn. Their WaveFunctionCollapse repository contains the original algorithm, and in particular the samples/ directory that is also included in this repository. Thus, I include the original credits:

Some samples are taken from the games Ultima IV and Dungeon Crawl. Circles tileset is taken from Mario Klingemann. Idea of generating integrated circuits was suggested to me by Moonasaur and their style was taken from Zachtronics' Ruckingenur II. Cat overlapping sample is taken from the Nyan Cat video, Qud sample was made by Brian Bucklew, Magic Office + Spirals samples - by rid5x, Colored City + Link + Link 2 + Mazelike + Red Dot + Smile City overlapping samples - by Arvi Teikari. Summer tileset was made by Hermann Hillmann. Voxel models were rendered in MagicaVoxel.

You can’t perform that action at this time.