aboutsummaryrefslogtreecommitdiff

Wave Function Collapse

This an implementation of very primitive tile-based wave function collapse. It uses tiles to generate an image, similar to this:

Demo 0 of the program Demo 1 of the program

There is a script to download a couple of tilesets that are copied from mxgmn's repository

Build

To build use ./build.sh To build and run use ./build.sh run To clean use ./build.sh clean To download the tilesets use ./download-tilesets.sh

Two files will be build in the bin directory, bin/gen_tiles and bin/wfc

I don't want to use Makefile, because I don't like it, and the project is not too big, so a shell script is enough.

How it works

Firstly bin/wfc -h can be used for some info on program arguments

The main program bin/wfc uses the tiles in files/tiles, which are ppm files. There is a file called tiles.dat in the same directory that holds information about the tiles, and it enables bin/wfc to generate the tile rotations

The bin/gen_tiles generates the tiles.dat file and copies the required tiles from the tileset There is a file called config.h under the src directory which is used to specify things about tiles.dat and basically configuring bin/gen_tiles. More info in the file as comments.

Limitations

  1. One the connection are saved, and no other tile data, so the circuit tileset doesn't really work
  2. Only tile based wave function collapse, I dont understand the other more complex one

References

Mxgmn's Wave Function Collapse README