wavefunctioncollapse | Walk through an infinite , procedurally generated city | Learning library

 by   marian42 C# Version: 0.2 License: MIT

kandi X-RAY | wavefunctioncollapse Summary

kandi X-RAY | wavefunctioncollapse Summary

wavefunctioncollapse is a C# library typically used in Tutorial, Learning, Unity applications. wavefunctioncollapse has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

Walk through an infinite, procedurally generated city
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              wavefunctioncollapse has a medium active ecosystem.
              It has 4149 star(s) with 488 fork(s). There are 165 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 5 open issues and 11 have been closed. On average issues are closed in 91 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of wavefunctioncollapse is 0.2

            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 is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              wavefunctioncollapse releases are available to install and integrate.

            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

            QUESTION

            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.

            ...

            ANSWER

            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

            Vulnerabilities

            No vulnerabilities reported

            Install wavefunctioncollapse

            You can download it from GitHub.

            Support

            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
            CLONE
          • HTTPS

            https://github.com/marian42/wavefunctioncollapse.git

          • CLI

            gh repo clone marian42/wavefunctioncollapse

          • sshUrl

            git@github.com:marian42/wavefunctioncollapse.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link