WaveFunctionCollapse | tilemap generation from a single example | Learning library

 by   mxgmn C# Version: v1.00 License: Non-SPDX

kandi X-RAY | WaveFunctionCollapse Summary

kandi X-RAY | WaveFunctionCollapse Summary

WaveFunctionCollapse is a C# library typically used in Tutorial, Learning, Example Codes applications. WaveFunctionCollapse has no bugs, it has no vulnerabilities and it has medium support. However WaveFunctionCollapse has a Non-SPDX License. You can download it from GitHub.

This program generates bitmaps that are locally similar to the input bitmap. Local similarity means that. In the examples a typical value of N is 3.

            kandi-support Support

              WaveFunctionCollapse has a medium active ecosystem.
              It has 21375 star(s) with 1144 fork(s). There are 508 watchers for this library.
              It had no major release in the last 12 months.
              There are 1 open issues and 46 have been closed. On average issues are closed in 45 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of WaveFunctionCollapse is v1.00

            kandi-Quality Quality

              WaveFunctionCollapse has 0 bugs and 0 code smells.

            kandi-Security Security

              WaveFunctionCollapse has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              WaveFunctionCollapse code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              WaveFunctionCollapse has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              WaveFunctionCollapse releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of WaveFunctionCollapse
            Get all kandi verified functions for this library.

            WaveFunctionCollapse Key Features

            No Key Features are available at this moment for WaveFunctionCollapse.

            WaveFunctionCollapse Examples and Code Snippets

            No Code Snippets are available at this moment for WaveFunctionCollapse.

            Community Discussions


            Issues implementing the "Wave Collapse Function" algorithm in Python
            Asked 2019-Jul-25 at 07:48

            In a nutshell:

            My implementation of the Wave Collapse Function algorithm in Python 2.7 is flawed but I'm unable to identify where the problem is located. I would need help to find out what I'm possibly missing or doing wrong.

            What is the Wave Collapse Function algorithm ?

            It is an algorithm written in 2016 by Maxim Gumin that can generate procedural patterns from a sample image. You can see it in action here (2D overlapping model) and here (3D tile model).

            Goal of this implementation:

            To boil down the algorithm (2D overlapping model) to its essence and avoid the redondancies and clumsiness of the original C# script (surprisingly long and difficult to read). This is an attempt to make a shorter, clearer and pythonic version of this algorithm.

            Characteristics of this implementation:

            I'm using Processing (Python mode), a software for visual design that makes image manipulation easier (no PIL, no Matplotlib, ...). The main drawbacks are that I'm limited to Python 2.7 and can NOT import numpy.

            Unlike the original version, this implementation:

            • is not object oriented (in its current state), making it easier to understand / closer to pseudo-code
            • is using 1D arrays instead of 2D arrays
            • is using array slicing for matrix manipulation

            The Algorithm (as I understand it)

            1/ Read the input bitmap, store every NxN patterns and count their occurences. (optional: Augment pattern data with rotations and reflections.)

            For example, when N = 3:

            2/ Precompute and store every possible adjacency relations between patterns. In the example below, patterns 207, 242, 182 and 125 can overlap the right side of pattern 246

            3/ Create an array with the dimensions of the output (called W for wave). Each element of this array is an array holding the state (True of False) of each pattern.

            For example, let's say we count 326 unique patterns in input and we want our output to be of dimensions 20 by 20 (400 cells). Then the "Wave" array will contain 400 (20x20) arrays, each of them containing 326 boolan values.

            At start, all booleans are set to True because every pattern is allowed at any position of the Wave.



            Answered 2019-Jul-18 at 22:46

            While looking at the live demo linked in one of your examples, and based on a quick review of the original algorithm code, I believe your error lies in the "Propagation" step.

            The propagation is not just updating the neighbouring 4 cells to the collapsed cell. You must also update all of those cells neighbours, and then the neighbours to those cells, etc, recursively. Well, to be specific, as soon as you update a single neighbouring cell, you then update its neighbour (before getting to the other neighbours of the first cell), i.e. depth-first, not breadth-first updates. At least, that's what I gather from the live demo.

            The actual C# code implementation of the original algorithm is quite complicated and I don't fully understand it, but the key points appear to be creation of the "propagator" object here, as well as the Propagate function itself, here.

            Source https://stackoverflow.com/questions/57049191

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install WaveFunctionCollapse

            WFC is a console application that depends only on the standard library. Get .NET Core for Windows, Linux or macOS and run. Alternatively, use build instructions from the community for various platforms from the relevant issue. Casey Marshall made a pull request that makes using the program with the command line more convenient and includes snap packaging.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone mxgmn/WaveFunctionCollapse

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link