> Wave Function Collapse

I've always found the name pretty misleading and grandiose, relative to what the algorithm actually does.

I think the metaphor is great.

Each tile has a superposition of possible states that collapse into one observed state. That’s all the metaphor is meant to mean, I think.

What are better names?

- Lego Simplices

- Tile Constraint Pairing

- Pipe Fitting

- Cartesian Convolution (nah)

- Finite automata (ok that’s fair, but subthings need names)

I dunno, I think the WFC metaphor works for me. The “wavefunction” is just the finite set of states that have a non-zero probability of being observed.

> Each tile has a superposition of possible states

This is like saying an uninitialized integer has a superposition of all possible values. I find it a very convoluted way of saying "each tile has a set of possible next states" - dragging quantum terms to this is just confusing, in my opinion.

The first definition of this type of procedural generation algorithm was called Model Synthesis by Paul Merrell [1] which built upon texture synthesis. You can even read Merrell's later comparison of the two algorithms [2].

[1] https://paulmerrell.org//thesis.pdf [2] https://paulmerrell.org/wp-content/uploads/2021/07/compariso...

You’re not wrong. I think I initially had higher expectations myself. But as a person who names things, I don’t really find this one to be a huge stretch.

> This is like saying an uninitialized integer has a superposition of all possible values.

Well? Yeah! And I personally like that way of thinking about sets. It maps pretty directly to my understandings of other things in math and physics.

Here's the algorithm described without the quantum nonsense:

1. Analyze Rules: Extract valid patterns (modules) and their compatibility rules (adjacency constraints) from input or define them.

2. Initialize Grid: Create an output grid where each cell initially contains all possible modules (maximum uncertainty).

3. Choose and Assign: Select the cell with the fewest valid modules remaining. Randomly assign one compatible module to it.

4. Propagate Constraints: Update neighboring cells by removing modules incompatible with the newly assigned one. If a cell loses all options, a contradiction occurs.

5. Handle Contradiction: If a contradiction arises, either backtrack to a previous choice or restart the process.

6. Repeat: Continue from step 3 until all cells are assigned a module or an unresolvable contradiction occurs.

Which is essentially how a basic sudoku solver works (which usually only has one solution, as opposed to many)

That's a very long name.

  > Tile Constraint Pairing
This seems pretty solid to me.

Constraint Collapse would be good

Ad hoc Prolog

- Stohastic Sudoku solvers

It's a bad name because you can only measure in 1 basis.

Real wave functions collapse based on the measurement apparatus.

There isn't any interference phenomena. It's just bad.

They should at least use a QRNG, then it would be somewhat justified.

They say "On each step...[yadda yadda] we have a completely observed state, the wave function has collapsed."

So they're trying justify calling a "state" a "collapse". That's a bad metaphor to start with, but then they try to use that metaphor to justify calling lots of other stuff "waves" that are unrelated to waves, and continue to shove that square peg thru a round hole. Hilarious.

It is even funnier when you consider that the entire algorithm is deterministic, assuming a fixed seed for a PRNG.

I know. It's hard to tell if they're trying to be jokingly "cringe" about all the "wave" stuff, or simply that non-conversant about wave theory and QM.