Why own an ambulance? First: The stretch issue Problem: A pixel represents more millimeters when it's farther away To what extent? Let's make up a scale factor Based on x coordinate, for this image Remember: Final output should cover the range 0 to 1 f(x) = ... Currently we're linear Maybe quadratic? As long as f(1.0) = 1.0 and f(0.0) = 0.0 f(x) = x**2 ? Kinda depends on how far off our perspective is Python ** supports decimals Could we calculate this based on height in the original image? Sure As long as we know we want an axis-aligned rectangle, etc Probably this demo has gone on long enough, though Mazes and labyrinths (Are these synonymous?) Round labyrinth symbol (is unicursal) First: Let's go look at a woodland mansion Includes cycles Most minecraft mazes do (abandoned mineshafts, nether fortresses, etc) Mazes on restaurant placemats and such don't include cycles Is this proper? Does affect generation algorithm a bit Usually they do include dead ends Real cities, etc. have cycles Building floorplans sometimes do Not always, though My house has only one My previous house didn't have any TJH has a few if you include multiple floors And a couple rooms with two doors...does that count? MLH has a cycle on floors 2 and 3 And multiple outside entrances Generation algorithms: Let's start with Prim's Algorithm Unless you all saw it somewhere or other? Description on Wikipedia We'll keep a dictionary of edges, set of "in" nodes, and "out" nodes Cost can come from noise.noise Draw as a panel, with upright panels for non-connections Visual Setup: A flat plane for the maze to be on Upright cubes (stretched) for wall panels How should they meet up? What if we randomly removed the most expensive 10 panels after we finished? Then we'd have cycles!