Wave function collapse implementation in Haskell.
This implementation works on a "Graph" rather than an image, so it scales to arbitrary dimensions. This means you can run WFC in 2D, 3D, or even do 3D animations over time: 4D! If you can express relationships between "cells" in your space you can solve it.
This lib is in early stages and will be changing a lot.
NOTE everything is completely undocumented and probably tough to figure out ATM. I'll clean it up eventually :)
You can see an example use-case in ./app/Main.hs
, best of luck to you :)
Building a simple tiling pattern with WFC using a text grid: