Readit News logoReadit News
zzyzek commented on Procedural generation with Wave Function Collapse (2019)   gridbugs.org/wave-functio... · Posted by u/todsacerdoti
TuringTest · 3 months ago
I prefer the name given in mathematical optimization, which is Constraints Satisfaction Problems; instead of using an imprecise physics metaphor, it gets a descriptive logical term of what's going on.

In CSPs, each cell is a 'decision variable' with a 'domain' of values, which get pruned by 'constraints' that propagate to values invalidated by the decisions made in the connected variables, until the whole 'problem' gets into either a solution which 'satisfies' all the constraints, or a contradictory state where a variable's domain is empty, causing the algorithm to backtrack.

CSPs have the advantage of having clear and efficient methods to go back to a previous state and keep exploring every alternate possibility, rather than having to restart from the beginning. The article hints at that possibility ('saving checkpoints' or'reverse the collapsing of a cell'); there's a whole field of study dedicated on the best ways to do that on a large scale for very general problems.

zzyzek · 3 months ago
Boris the brave coined the term "Constraint Based Tile Generators" (CBTG) [0], which is a specialization of the more general CSPs to this particular domain.

Personally, I find CSPs overly general and mired in esoteric, byzantine terminology. It's a large cognitive load to put on people to run through the glossary of terms just to talk about the problem set up. I don't think the quantum mechanic analogy is great but I can see it being much more intuitive than the obscure language of CSPs.

[0] https://www.boristhebrave.com/2021/10/31/constraint-based-ti...

zzyzek commented on Procedural generation with Wave Function Collapse (2019)   gridbugs.org/wave-functio... · Posted by u/todsacerdoti
63 · 3 months ago
I always found "wave function collapse" to be a terribly overcomplicated name for a pretty intuitive concept. The first paragraph does a good job explaining the term, but still I wonder how many people stray away from such things when the name alone is overwhelming.
zzyzek · 3 months ago
For many, the name is intuitive as its encapsulating the idea that a cell can hold a variety of states until it gets "collapsed".
zzyzek commented on Procedural generation with Wave Function Collapse (2019)   gridbugs.org/wave-functio... · Posted by u/todsacerdoti
zzyzek · 3 months ago
This is based off of Paul Merrell's Model Synthesis work [0]. Boris The Brave had a good writeup of the core of the algorithm [1].

Max Gumin focused on just the constraint solver and added a "minimum entropy heuristic", popularized the work and coined the term "wave function collapse", as the way the solver worked was evocative of (a naive view) of how quantum mechanics solves systems [2]. Gumin's repo also has many other resources of implementations and descriptions [3].

I've published a paper on an extension that adds in a type of backtracking to both the "WFC" portion of the solver and the modify in blocks portion of the solver, which can be found in [4], for those interested.

[0] https://paulmerrell.org/model-synthesis/

[1] https://www.boristhebrave.com/2021/10/26/model-synthesis-and...

[2] https://github.com/mxgmn/WaveFunctionCollapse

[3] https://github.com/mxgmn/WaveFunctionCollapse?tab=readme-ov-...

[4] https://zzyzek.github.io/PunchOutModelSynthesisPaper/

zzyzek commented on The independent researcher (2018)   nadia.xyz/independent-res... · Posted by u/rnjailamba
Ar-Curunir · 10 months ago
You know you can just publish on ArXiV, right?
zzyzek · 10 months ago
Publishing on arXiv is now very difficult. You need someone to endorse you who has an account on arXiv and has three recent publications in the area of research you're trying to submit.

I just went through this and had prominent researchers willing to endorse me but unable to do so because of the now stringent requirements on arXiv.

FYI, I am an independent researcher.

zzyzek commented on Show HN: I made a website to semantically search ArXiv papers   papermatch.mitanshu.tech/... · Posted by u/Quizzical4230
Quizzical4230 · a year ago
Thank you for taking the time to try out the site!

arXiv has a keyword based search engine. It looks for words as is in the text. PaperMatch tries to find similar papers that are closer in meaning.

Here is an alternative approach: Take one paper that you like, copy the abstract from arXiv (or arXiv ID) and paste it in PaperMatch. This should help you find similar papers.

zzyzek · a year ago
Very nice! Putting in an arXiv ID looks to produce many results that are much more relevant.

EDIT: You should provide this in an "information"/"about"/"how to use" dialogue or page to help people use the tool better.

zzyzek commented on Show HN: I made a website to semantically search ArXiv papers   papermatch.mitanshu.tech/... · Posted by u/Quizzical4230
zzyzek · a year ago
This seems like a cool idea, thanks for creating it!

Some feedback:

I tried searching for "wave function collapse algorithm", "gumin wave function collapse", "wfc" and "model synthesis" without any relevant hits to the area of research I was interested in. I got a lot of quantum computing and other physics related papers.

The "WFC algorithm" overloaded the term (and has nothing to do with quantum mechanics) so it's kind of a bad case for this type of search. Model synthesis is way too generic, so again, might be a bad case for this.

The first page of results using "wave function collapse algorithm" from arXiv itself gives relevant results.

zzyzek commented on Ask HN: What are you working on (September 2024)?    · Posted by u/david927
zzyzek · a year ago
I'm working on an extension to the Modify in blocks Model Synthesis algorithm [0] and the Wave Function Collapse algorithm [1] called "Punch Out Model Synthesis":

https://github.com/zzyzek/PunchOutModelSynthesis

Here's a gallery of sample outputs from the algorithm:

https://github.com/zzyzek/PunchOutModelSynthesis/blob/main/r...

I have an online demo of the algorithm in action for different tilesets (it's a little rough, so be warned):

https://zzyzek.github.io/PunchOutModelSynthesis/

The idea is you take an example image, chop it into little segments and infer tile rules depending on the overlap. It's very much old fashioned "machine learning/artificial intelligence" (that is, without any neural networks involved). There's also a demo of tile rule inference idea here:

https://zzyzek.github.io/TileRuleHighlighter/

[0] https://github.com/mxgmn/WaveFunctionCollapse

[1] https://github.com/merrell42/model-synthesis

u/zzyzek

KarmaCake day12September 29, 2024
About
https://zzyzek.github.io
View Original