I’m currently working on a road generator which will be integrated into Medjed’s terrain generator. What you see in the image above is a bug I accidentally created while working on the radial road rule. Beautiful, right?
I’m heavily mimicking the work Parish & Mueller did in their excellent (if too concise) paper Procedural Modeling of Cities. Their approach is a very detailed one and I’m iterating through different levels of complexity as I go. I started with a basic L-system with just two modules (road and branch), while their system is much more complex with more strict rules.
The idea is that at some stage the road generator will get integrated into Medjed’s density-based terrain generator, so that the generated roads actually influence the terrain around them. For example, if I define the space around the road to have a very large negative density, then any terrain that would get generated at that point would get cancelled out by the road’s density function. Think tunnels (for free!), think tight mountain roads that automagically carve themselves into the side of the mountain, etc. Good stuff.
I’ll post more goodies as I go.