Lazy Model-Synthesis

Bachlor Theses topic
by Maarten Behn


Have you heard of Wave Function Collapse?


Used in Town Scraper


https://paulmerrell.org



Original Algorithm

  1. Give every node every value
  2. Pick a node and choose one Value
  3. Check all other nodes values if they can still exist
  4. Go to 2
  5. Every node has been picked => Done

Problems

  • Terrible performace
  • What about dynamic or time based rules?
  • What about user input? (Rules changing)
    • Keep marco features

Datastructure => Graph

A node has a set of values

  • Stone
  • Dirt
  • Sand

Requriments for Stone:

  • Left neigbor is Stone => Neigbor rule
  • max 5 Stone nodes in world => Global rule
  • 30 sec passed => Time rule
  • A Bolder is near => Dynamic rule

My Idea

Lazily slove the problem

=> Every value keeps track which other value needs to be removed / added if its removed / added
=> Find solution with the least change