wavefunctioncollapse | Javascript port of https | Learning library

 by   kchapelier JavaScript Version: 2.1.0 License: MIT

kandi X-RAY | wavefunctioncollapse Summary

kandi X-RAY | wavefunctioncollapse Summary

wavefunctioncollapse is a JavaScript library typically used in Tutorial, Learning applications. wavefunctioncollapse has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can install using 'npm i wavefunctioncollapse' or download it from GitHub, npm.

Javascript port of
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              wavefunctioncollapse has a low active ecosystem.
              It has 309 star(s) with 32 fork(s). There are 12 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 1 open issues and 3 have been closed. On average issues are closed in 60 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of wavefunctioncollapse is 2.1.0

            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 not available. You will need to build from source code and install.
              Deployable package is available in npm.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi has reviewed wavefunctioncollapse and discovered the below as its top functions. This is intended to give you an instant insight into wavefunctioncollapse implemented functionality, and help decide if they suit your requirements.
            • Loads the bitmap .
            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 install using 'npm i wavefunctioncollapse' or download it from GitHub, npm.

            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
            Install
          • npm

            npm i wavefunctioncollapse

          • CLONE
          • HTTPS

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

          • CLI

            gh repo clone kchapelier/wavefunctioncollapse

          • sshUrl

            git@github.com:kchapelier/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