Infinite Worlds from One Example: What Local Generators Must Share
Organizations: Department of Computer Engineering, University of Zanjan.
Abstract
Seeded noise lets games generate any region of an unbounded world on demand. We ask what such a generator needs when every small window must come from one example, the constraint behind Wave Function Collapse. The difficulty is that local constraints can require agreement over arbitrary distances: in a brick wall, each row keeps its place between the mortar lines. We study local generators, each cell a fixed function of the randomness near it. When the constraints carry a quantity that varies across the example, no generator that applies one rule, ignoring position, to independent randomness at every cell can be both exactly valid and faithful to the example's statistics, however far each cell reads. At radius r, staying faithful forces forbidden windows at a density of at least order 1/r, and a construction attains this order. To vary the quantity between exactly valid worlds, a generator needs randomness shared along its direction. We give a finitely checkable condition under which row types drawn from the seed and the position modulo a fixed period suffice for exact validity without learning. A search over the example's patches certifies these quantities and names the input each needs. Across 52 public examples of Wave Function Collapse and 27 from other implementations, it certifies only examples where a learned generator on independent randomness stays far from valid after repair. Given that input, a neural cellular automaton and a diffusion model become valid on 10 and 8 of the 12 certified examples that receive one, and on none from independent randomness. Valid means at most one forbidden window in a thousand after repair. With octaves of seeded noise elsewhere, the automaton is valid on 45 of the 52 public examples and 21 of the 27 from other implementations, and repair keeps random access.
Figures & tables
| generator | role |
|---|---|
| the min-coin copy | on each cell’s own coins, the floor’s order (Proposition 2 ) |
| shifted replay | the tiled example at one offset drawn from the seed: valid and faithful, one world up to translation |
| the i.i.d. draw | each cell drawn from its own coins: copies nothing; what mending makes from noise |
| block-shifted tiles | one offset per block of a fixed lattice: copies with defects on block boundaries |
| the copier | the row types filled with the example’s rows, one coin per stretch: the input alone |
| the Metropolis filler | written by hand, on the row types and hashed coins: composition on the input |
Appendix figures & tables7 assets
Supplementary material from the paper’s appendix.
Appendix
| example | anchor | alphabet | glue | configu- rations | most at one row | largest set | ||
|---|---|---|---|---|---|---|---|---|
| Wall | 3 | 32 | most frequent pair | all shifts | yes | 174 | 7 | 18 |
| SimpleWall | 3 | 48 | start of a free run | shift 0 | yes | 2,970 | 120 | 3 |
| 3Bricks | 4 | 48 | end of a free run | all shifts | no | 64 | 3 | 992 |
| Flowers | 3 | 112 | end of a free run | shift 0 | yes | 2,116 | 36 | 22 |
| MoreFlowers | 3 | 112 | end of a free run | shift 0 | yes | 2,116 | 36 | 21 |
| Platformer | 3 | 1,040 | end of a free run | shift 0 | yes | 17,425 | 33 | 80 |
| example | row types | pair states | anchor | free run (rows) | of walks per band | spacing in the example | sampled spacing | ||
|---|---|---|---|---|---|---|---|---|---|
| Wall | 3 | 4 | 5 | most frequent pair | – | 32 | 5.2 | 4, 5 | 5 (4–5) |
| SimpleWall | 3 | 4 | 5 | start of a free run | 2–31 | 48 | 16.5 | 5, 6 | 5 (5–14) |
| 3Bricks | 4 | 2 | 3 | end of a free run | 7–31 | 48 | 10.8 | 8 | 12 (8–32) |
| Flowers | 3 | 5 | 6 | end of a free run | 20–31 | 112 | 9.7 | 24 | 28 (24–35) |
| MoreFlowers | 3 | 5 | 6 | end of a free run | 20–31 | 112 | 9.7 | 24 | 28 (24–35) |
| Platformer | 3 | 3 | 4 | end of a free run | 30–31 | 1,040 | 29.2 | 32 | 33 (32–33) |
| example | type | direction | values | example’s marginal of | floor | indep.-coin rule’s | constant valid | ||||
| Wall | invariant | horizontal | 3 | 1 | 4 | (0.33, ) | 0.67 | 0.65 | 0.10–0.19 | n | |
| SimpleWall | invariant | horizontal | 3 | 1 | 4 | (0.47, ) | 0.53 | 0.48 | 0.06–0.11 | y | |
| Flowers | invariant | horizontal | 3 | 1 | 5 | (0.83, ) | 0.17 | 0.12 | 0.19–0.25 † | y | |
| MoreFlowers | invariant | horizontal | 3 | 1 | 5 | (0.83, ) | 0.17 | 0.12 | 0.23–0.29 † | y | |
| 3Bricks | invariant | horizontal | 4 | 1 | 2 | (0.88, 0.12) | 0.12 | 0.11 | 0.33–0.40 | y | |
| Skyline | invariant | horizontal | 3 | 1 | 4 | (0.89, ) | 0.11 | 0.08 | 0.27–0.35 † | y |
| example | quantity | expected at the reach | forbidden windows | clean | |||||
|---|---|---|---|---|---|---|---|---|---|
| Wall | invariant | 3 | 0.35–0.38 | 0.60 | – | 0.35 | 26.2 | 0 | 11/11 |
| SimpleWall | invariant | 3 | 0.21–0.23 | 0.30 | 0.53 | 0.47 | 21.1 | 0 | 8/8 |
| Flowers | invariant | 3 | 0.20–0.22 | 0 | 0.17 | 0.85 | 6.1 | 0 | 8/8 |
| MoreFlowers | invariant | 3 | 0.18–0.20 | 0 | 0.17 | 0.85 | 6.1 | 0 | 8/8 |
| 3Bricks | invariant | 4 | 0.34–0.44 | 0.034 | 0.77 | 0.92 | 0.8 | 1069 | 1/8 |
| Skyline | invariant | 3 | 0.26–0.35 | 0 | 0.25 | 0.89 | 4.3 | 0 | 8/8 |
| class (mending at radius 8) | examples | certified | constant coloring valid |
|---|---|---|---|
| mendable within radius 8 | 21 | 0 | 20 |
| partial | 10 | 0 | 9 |
| resistant | 21 | 13 | 15 |
| all public examples | 52 | 13 | 44 |
| group | example | direction | persists along | ||
|---|---|---|---|---|---|
| certified | 3Bricks ∗ | rows | 1.13 | 1.05 | rows |
| Fabric | columns | 2.42 | 2.42 | all four | |
| Flowers | rows | 0.10 | 0.09 | rows | |
| MoreFlowers | rows | 0.12 | 0.11 | rows | |
| Platformer | rows | 0.84 | 0.54 | rows | |
| RedMaze | rows | 2.51 | 2.51 | all four |