Given a map showing terrain and settlement locations (cities, towns, villages) I'd like to design a road network that appears natural, rather than just being the most efficient. I'm interested in two aspects:

  • how can I realistically model the development of roads over time?
  • will a road network naturally drift towards the most efficient network as it develops, or can it settle into a sub-optimal network that remains stable over time?

Obviously an advanced civilisation designing a road network for a new colonisation can choose the shape of their road network (for example, modern cities often have a large scale grid pattern to their road networks), but I'm looking for a realistic natural development of roads in a civilisation for which road building is expensive and the network arises naturally from tracks that are gradually improved as usage increases.

So the process starts at a period with limited resources and transportation, and the technology to make hard road surfaces gradually becomes economically viable as the transportation network develops. I'm interested in networks that emerge starting with a population too small to design the network on a large scale, with limited technology - travel by foot or horse and cart. Technology can improve during the lifetime of the road network, but I want a system that reflects the simple beginnings.

  • $\begingroup$ Even under your conditions, there might be huge differences. Just compare cities in the Western USA (example) with European ones (example). $\endgroup$
    – Wrzlprmft
    Oct 26, 2014 at 13:04
  • $\begingroup$ @Wrzlprmft if you mean the grid approach of modern cities (for example US cities) then that's what I'm not looking for. That's an advanced civilisation designing a road network in advance, rather than a road network arising naturally as a small population gradually grows and cities form by growing slowly rather than being designed. $\endgroup$ Oct 26, 2014 at 13:21
  • 1
    $\begingroup$ Roads would probably follow natural geographical features in the beginning: they might follow the course of a river, go along a ridge in the landscape, or skirt around a hill or mountain in between two important towns. $\endgroup$ Oct 26, 2014 at 13:40
  • 1
    $\begingroup$ Yep, that's better. Road technology changes a lot over time (for example fords vs bridges vs tunnels and how wide an obstacle they can cross.) $\endgroup$
    – Tim B
    Oct 29, 2014 at 14:08
  • 2
    $\begingroup$ I'm surprise nobody has mentioned Orbis yet. It's not really answering the question but it's a cool resource for Roman roads: orbis.stanford.edu/# $\endgroup$
    – Vincent
    Oct 31, 2014 at 20:53

7 Answers 7


Assuming you have a map, I would first plot out all the different settlements. Towns, cities, villages, hamlets, outhouses - everything. Now connect them in straight lines. Completely straight. It doesn't matter if the lines go over an ocean or through a volcano; we'll modify them later. The point of the straight lines is that, whenever possible, roads will follow the shortest route from point $A$ to point $B$.


Sometimes the shortest route isn't a line. You probably have a few obstacles for each path. Here's what you do for some of the more common ones:

  • Water - If it's a ocean, either go all the way around via land or put a port on either side of it and connect the two sides with boats. I can assure you, bridges are not going to work for hundred-mile-long spans. Well, there are exceptions, but they're few and far between. And they're costly. So if you have to cross an ocean where the two landmasses aren't connected, just use a boat.

    For lakes smaller than 10 miles in length across, hug the lakeshore. Sure, you could build a bridge, but you'd destroy a pristine environment. You can afford to go the long(er) way in order to save a habitat. For lakes larger than 10 miles in length. . . Well, the ocean rule applies. Either use ports or go the long way.

    Rivers and streams are easy to cross. Just build a bridge. They're generally not too wide, so this shouldn't be hard. If the road follows a river (as many do), just have it run parallel. If it's at an angle such that a straight line would cross the river diagonally over the span of a dozen miles (or even just a mile), just have it run parallel for a while and then cross. Do what a runner would do: spend the shortest amount of time crossing as possible.

    Another approach that I completely forgot is to use tunnels. These are perfect for going under moderately-sized bodies of water. The Channel Tunnel is one example. If you don't want to spoil the landscape or potentially block trade routes on rivers, simply build a tunnel. Now, there are other problems with building a tunnel - specifically, getting the machinery down there - but it might pay off.

  • Land - Mountains are tricky. Going over them is impractical; going under or through them is equally impractical. Go around them or, better yet, take a mountain pass (but exclude large trucks and other vehicles). A mountain pass means you can reduce how steep the road will be while still keeping it reasonably straight (i.e. not straying too far from its original route) and giving those in the vehicle a nice view. The same rules for tunnels apply here as they did for obstacles of water. The same goes for chasms and canyons with no water: Go the shortest way possible. Bridges are always handy.

    One other thing to consider about routes with elevation changes is that going uphill or downhill creates a longer path than going on a flat surface. You have to travel vertically as well as horizontally, and thus you have more ground to cover. Therefore, even if you can go from $A$ to $B$ in a straight line as viewed from above, it may not be the shortest path if there are drastic elevation changes.

How big?

Obviously, not all your roads are going to be the same size. That's fine. Here's a trick I would use to figure out their size: treat them like field lines. The more people in a location, the more (or bigger) roads that come out of it. All field lines must start and end, and all roads must start and end. You just have to figure out where they go.

How your world will evolve

Your world will certainly change once roads spring up. Settlements will appear at crossroads, as well as at the intersection of roads and bodies of water, forming port cities. As roads grow, the settlements will grow, and as the settlements grow, the roads will, too. The two have a tight relationship. You need roads for settlements because you need to get from one to the other. People will venture out and explore the land, and start new settlements, and so there will be roads that lead there. Towns will spring up and die down, and so roads will be built and torn down.

The evolution of roads

The first roads will be trails, fit only for a few people to traverse at a time. They will be used just once: to get to a colony. Eventually, though, more people will come to the colony, and the trails will become paths, big enough for wagons to go on. What happens next depends on how the colony does. If it fails, the road will fall into disuse. But if it succeeds, the road will expand. If this colony eventually becomes fully part of a nation (I'm envisioning something like the American West here, except, for some strange reason, with forests), then the road will have an official designation - maybe an official name, instead of a casual nickname. It may become paved, or at least covered with gravel. Eventually, assuming that paving has developed, it will certainly be paved. From here on, the road will evolve based on the traffic that uses it. It could become a noisy highway or a winding back road. It all depends on where it goes to.

  • 5
    $\begingroup$ An excellent answer, I did want to contest the point about rivers though. Some rivers are very wide. In fact London is where it is as it was the closest to the mouth of the Thames that people could cross. $\endgroup$
    – Tim B
    Oct 29, 2014 at 11:14

Settlements and transport routes are very closely related, so you may find that by developing both at the same time you get a more realistic setting.

Depending on the technology level of your setting there are a few general considerations to hold:

  • Crossing water is hard - rivers are hazardous to ford in many places or even impassable at some times of the year so roads will converge at fords or bridges. Look at British place names to see how many 'ford' and 'bridge' endings there are. Bridges are not necessarily easy to build and take time and resources but having one is likely to attract people wanting to cross a river from quite a distance. Lakes are similar but as mentioned in @HDE226868's answer, roads around lakes will tend to hug the coastline. Roads will often follow waterways- sometimes as a legacy of horse drawn boats but sometimes because:
  • Hills are hard - less of a problem for modern engines, but roads will tend to track valleys rather than travelling over ridges. Also hilltops tend to be exposed which means a greater chance of modern transport being blown off course and very unpleasant journeys on horseback or foot, so people will often choose routes that offer some degree of shelter. An advantage of a road following a coastline or waterway is that there are unlikely to be any major inclines to contend with.
  • Wetlands are hard - maintaining a road over wet or peaty ground is very difficult and work intensive. Again, less of a problem in a modern setting, but most roads weren't built in a modern setting. Wetlands tend to undermine roads so that they develop potholes and pools in which it is easy for wheeled vehicles to get stuck. Consequently where possible roads are likely to skirt around wetlands.
  • Nobody wants a road over their field - if you look at roads in areas where there is a lot of agriculture, they often skirt around field boundaries, so the route they take tends to be a little circuitous. This is one way that you can see the borders of old estates here in the UK because roads suddenly straighten out.
  • Settlements develop where roads are - a lot of settlements arise where roads converge because that is where trade takes place, so you might have small settlements out in the forest where woodcutters live, but there will be a larger central town that connects them to the transport network where they are able to sell the wood they harvest and buy necessities like food and saw blades. This is a common pattern. This is also an advantage of bridging a difficult river- everyone who wants to cross the river now comes through your village. Conversely settlements up in a valley with no through-traffic are likely to be something of a backwater and not see many visitors.

If I was thinking about settlements within a region from an economic perspective, I would expect there to be a coastal port, probably at a river mouth that provides a harbour and a link inland. Then I would expect to see settlements where resources are available. It would be necessary to get goods from those settlements to the port, so this is how your road network arises and at points where roads converge or where they cross rivers and other difficult terrain, I would expect new settlements to arise.

There are of course many non-economic factors - religious sites, military infrastructure and political projects can all contribute to the development of a road system, but the combination of geography and economic necessity can give a really solid foundation for the design of a road system.


If you want to try an algorithm to do this, follow this design (it's based on the Ant colony optimization algorithm):

  • Send out thousands of ants.
  • For each step, try to find one which takes the least energy with some random excess. Going up takes more energy than going down, going over water is more expensive than going over a bridge, etc.
  • The excess allows ants to try sub-optimal sub-paths (like crawling over a high ridge between two mountains) that result in a better overall path.

With every ant that you send out, the path between two sites will become better. If you use color, you can display the cost for each part of the paths. That will allow you to manually optimize some parts (like cutting roads through forests or tunnels through mountains).

[EDIT] Human roads follow the same pattern. If you go to a park, you'll notice that the lawn is trampled down in certain spots. That's where people take shortcuts. Architects even take advantage of this by not creating any paths at the start, waiting until people create tracks and then turn them into proper ways. See wikipedia: Desire path.

The tricky part of the algorithm above is to convert all the obstacles into energy. Also, the environment of real roads change over time. Trees are felled or die, houses are built and demolished, cities grow and are abandoned. Then there are legal obstacles like people not selling a plot of land, forcing the road to take another route. After a long period of time, roads will look "out of place". But at the same time, we constantly demolish/abandon roads and build new (better) ones.

The rebuilding of course depends on the technical level of the civilization. Today, it's relatively easy (= big machines) and cheap (= there is more money on the planet than ever before, so all big things become cheaper by comparison) to build a new road. Two thousand years ago, small roads naturally emerged from desire paths but big roads took decades from the plan to the completion.

See "Roman roads" for some ancient techniques. Unfortunately, I couldn't find a good resource on how long the process took.

My approach to the problem would be to start with a simple algorithm and a static environment. I'd then experiment with the code, like changing the environment between iterations.

  • $\begingroup$ @githubphagocyte: Human road networks are optimal. They just seem to be sub-optimal because you don't know all the constraints (legal: plot of land couldn't be bought, etc). We are subconsciously using exactly the same algorithm as the ants (since we also want to save energy). $\endgroup$ Nov 3, 2014 at 11:18
  • $\begingroup$ Human road networks approach optimal over long periods of time, during which the constraints also change. Your answer currently only covers the energy aspect of that optimisation, which is one of a large number of different factors. $\endgroup$ Nov 3, 2014 at 19:21
  • $\begingroup$ The ant colony algorithm is used for pretty small problems most of the time, which is why the output looks so regular. I'm confident that you will see more natural looking results if you apply it to large distances with lots of obstacles in between. $\endgroup$ Nov 4, 2014 at 9:25
  • 1
    $\begingroup$ A major point made in the question is that the factors change over time. The roads now are a product not only of what is optimal now (and even that depends on many hidden factors, like which decision-maker's cousin's home town had to be on the path of a major road, while their country estate couldn't be crossed by a road), but also of the history of the place (there's a big road because there used to be a big mine at one end, the mine is now empty but the road exists so it would be more expensive to re-route it). $\endgroup$ Nov 4, 2014 at 11:28
  • $\begingroup$ Following editing this now gives a broader picture of how changes occur gradually over time. Downvote removed. $\endgroup$ Nov 4, 2014 at 11:59

When determining the most realistic way in which a route might evolve, the most effective approach is to undertake a constraint mapping exercise, or "Cost Path Analysis", which is a form of spatial analysis.

Whilst this might seem to be an overtly planned exercise, it is import to consider that it is the choice of the constraints, rather than the analysis, which lends credence to the result.

The constraints will also change over time, so as a cultures priorities change and technological improvements overcome some constraints, new ones will spring up to take their place.

Thinking about Constraints

The original post dictates that the process should start

"at a period with limited resources and transportation"

So let's think about how a new route develops in this situation, and the kinds of constraints that might be applicable. A new route develops out of a need, usually either an economic need (getting your produce to market), or one of survival (moving down out of the mountains in the winter, fleeing an oppressor, following an animal migration route)

  • journey time - people want to get where their going as fast as possible, within the limits of the other constraints.
  • safety - early travelers will want to avoid dangerous areas (wild animals in the forest, thieves in the foot hills etc).
  • hydrology - any water course or body of water that cannot be forded will be effectively impassable until the route is more developed.
  • existing routes - it might be easier to use part of an existing and more established route than to start a new one.
  • cultural influences - routes may avoid sacred sites, or there may be areas which are forbidden to travel through for some reason, whether it's private land or cultural taboos.

As time progresses, it is often changes in the constraints that will determine whether a route flourishes. Have thieves started targeting caravans on the mountain pass that mean it's safer to go through the forest? Has a new paved road between two nearby settlements improved journey times making older routes redundant?


Once you've decided the constraints for your analysis, the next step is to divide your mapped area into a grid and assign a value to each cell, for each constraint (Excel to the rescue). High scores are bad, low scores are good. The sum of the scores for all constraints for a given cell gives you the total "score" for the cell. You can also tweak the scores you assign for each constraint to give weightings to certain things that you think are more important.

When every cell has a score, it is just a matter of working from point A on your grid to point B, building a route of "Least Cost Path".

Thinking about the changing constraints over time and carrying out a similar exercise for different periods in the timeline will reveal a more natural route evolution than by guesswork and supposition.

  • 1
    $\begingroup$ -1 "Given a map showing terrain and settlement locations (cities, towns, villages) I'd like to design a road network that appears natural, rather than just being the most efficient." This would be most efficient not a naturally evolved system. $\endgroup$
    – Myles
    Oct 29, 2014 at 20:32
  • $\begingroup$ @Myles - and in each age of development, how do you think the route was determined? Sure they may have used different constraints, but this is exactly how a road system evolves. $\endgroup$
    – ninesided
    Oct 30, 2014 at 9:16
  • $\begingroup$ @githubphagocyte inefficiency is in the eye of the beholder, it all depends on the constraints, which of course change over time. I'll modify my answer slightly. $\endgroup$
    – ninesided
    Oct 30, 2014 at 13:47
  • $\begingroup$ That "slight" modification is a huge improvement, and this now shows me exactly how this can be applied to my specific question. +1 $\endgroup$ Oct 30, 2014 at 15:35
  • 2
    $\begingroup$ Downvote retracted. Major improvement. $\endgroup$
    – Myles
    Oct 30, 2014 at 16:14

I would map the settlement and road history of the area over time, starting with the terrain. What made sense in one era often makes less sense later. There are many reasons why roads do or don't get built, maintained or used: Politics, agriculture, industry, pork barrel corruption, military reasons, suburbanization. Speaking of which, check out the road grid in a traditional city, where pedestrians and horses were common, and roads allow access to almost everything in many directions, to the road patterns (and building distribution) of automobile-oriented suburbs, where people need cars to get to stores, and the roads tend to only provide limited branching access with many dead ends and cul-de-sacs. You can learn a lot from studying maps of different periods and locations.

As for being optimal or not, even brand new 21st Century road development often seems quite far from optimal, even considering all the non-traffic-related limits and influences at play. Traffic tends to use the roads quite non-optimally, too. There is definitely a lot of inertia in road systems. Some roads from ancient Rome are still in use, for example.

  • $\begingroup$ Thanks for the broad range of influencing factors. It will be interesting seeing what city patterns emerge over the next few decades as human-driven automobiles are phased out. $\endgroup$ Oct 26, 2014 at 23:07

Start with a design that connect each settlement to anther settlement that is close by. Then pick a random connected group of settlements and connect to the closest unconnected settlement with the sorest possible road. Repeat until there is way to get between all settlements.

Once all settlement are connected, choose two large settlement at random and add one short road that reduce the travel time between them maybe by bypassing a settlement that slows down a road. Repeat.

Meanwhile allow the settlements that are best connected to grow in size.

  • 1
    $\begingroup$ I like this algorithmic approach. I imagine this giving realistic results if combined with geographical data. At present I guess this would give realistic road networks for a plain with minimal obstacles. $\endgroup$ Oct 29, 2014 at 11:44
  • 2
    $\begingroup$ @githubphagocyte, just take obstacles into account when working out distance, or use "cost of road" rather then distance. $\endgroup$ Oct 29, 2014 at 12:09
  • $\begingroup$ That would make a good expansion of your answer if you want to edit it... $\endgroup$ Oct 29, 2014 at 12:17

The points in your map (cities, towns and villages) are hierarchical, so the road patter must respect this hierarchy. A point wants to communicate with a greater one, not a equal. This hierarchy also reflect the point dispersion. The road itself also make points. A important and long road must have inns, rest points, that with time develop into villages.There is also a demographic spot along the road we can see in satellite photos of forest roads. Other important factor is water. You can't built a city without water to drink and to plant. If the city became too big, like Roma you will need a logistic solution, like importing a lot of wheat (and fighting wars for arable land) and building aqueducts.

There are physical, economical and historic reasons to a city became big and important, but always remember that the road system is hierarchical as the points it link. So, the probability for two near but small villages to have a direct connection is smaller than these villages to have a direct connection with a bigger city in near. This is the "most efficient network"? For most of the travels yes, but is very sub optimal to do all possible travels. Travel is a risk, even today and this is a factor against giving a chance to Big Bad Wolf in lonely roads.


  1. Think in the people. Why they live in each point? Why some points became important (big)?
  2. Link important points, distribute smaller points around the bigger ones and across the most important roads.
  3. Link the new points to cities, thinking in the point hierarchy and "why a citizen of this point want to go to this other point?" but also to points in roads, or crossroads. Many cities birth this way.
  4. Select some of this new points to grow, and repeat until you like your map.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .