< ⌂ Procedural Experiments

Road Systems 2018 - ongoing

Recently I began working on a procedural toolkit for future works. I am particularly interested in generative cities, so creating road systems seemed like a good place to start. My hope is that this toolset will be useful in future works of my own, and also flexible enough to be useful to others.

My primary reference for this system has been a paper by Parish and Müller (which was also utilized in a great write-up here)

Work in this project began in OpenFrameworks, but after some point it became clear to me that it was possibly less useful to me on that platform, and I began to port my work over to THREE.js, where I've continued. The system itself can be represented by an undirected graph. It consists of a series of nodes that contain references to all roads it is connected to, which is necessary for traversal as well as building lot generation.

Currently the project is ongoing, with my focus currently on generating buildings and terrain.

Growth Patterns

As the first of my procedural experiments, this project began with handdrawn plants and branches. I was interested in how someone might intuitively draw a branch or plant, and this was my attempt to build a digital system based on those rules.

The system begins by generating a single, multisegmented branch. Each segment should tend towards some imagined light source, and be skewed by the direction of the segment that came before it.

Once this is finished, the process is repeated on random segments, allowing new, shorter branches to emerge.

I intend to continue on this and make it compatible with the procedural city generation tools I am working on.

Source Code
sample of generated branches