I’ve made a small demo app to experiment with local methods to generate streets for the Infinicity project with interim results at left. The approach the program takes is based on:
- a randomized number of nodes per edge
- a randomized (though so far hard-wired at 2) number of internal nodes per grid unit
- creating edges between the internal nodes
- creating edges between each edge node and the closest internal node
In the real app, the randomization of the edge nodes (both in number and placement) will be based on a simple mathematical combination of the coordinates of the edge vertices, causing neighboring grid units to line up with each other without any direct connection. This is implemented, but disabled in the above app, in order to get a better feel for the variations produced by the process.
If you’d like to see the demo in action, you can download it here.