Articles

A Series Of Twin Tubes

I've always been fascinated by the hidden complexity of the Underground, and armed with a couple of different sources, I set out to make a non-geographical map of the Underground's track and platform layout (unlike, for example, the excellent carto.metro geographical map) of the lines:

/static/uploads/twintubes-section.png

The first step was, naturally, to write a program which would automatically draw the map for me. Not completely automatically, of course - it still takes inputs of where the platforms and points are, but it takes care of drawing nice, neat lines, with 45° angles, correctly rounded corners, and a few other visual flourishes that would take hours to apply manually.

While the first version of the program read entirely from a text file, it wasn't long before it became apparent that moving any more than a few stations around was going to be a massive pain, and so I quickly wrote a GUI tool to edit the stations (and to draw the map in realtime as I did so). Thanks to my use of Cairo for the PDF output, it was trivial to embed the map code into a GTK program:

/static/uploads/twintubes-gui-small.png

With the help of Martin Smith, I sat down and encoded every single station and line join on the Underground, Overground and DLR, as well as any points which were roughly part of the main running lines (depots are excluded from the map for space reasons).

Once they were all in, there was then many hours of shuffling and moving the stations around, changing their orientations, and getting the labels in the right places - the goal being to have the entire system fit reasonably in an A4-shaped area (a task that's much more difficult than it sounds). Along the way, I've broken many laws of geography, but the tracks are mostly correct relative to each other, an improvement over the original Tube map (which is readable at a much greater distance than mine - there's a reason it's so contorted and lies about where things actually are).

Unfortunately, I never got around to publishing this last year, but I've polished and released it now, in preparation for another (very much related) project of mine I want to get out at some point soon. There's also potential for this map to be combined with the live Tube position data (and something similar ripped from the less-detailed DLR and Overground departure boards), if I ever find the time!

If you want a PDF download, or some more details and notes on how to send me corrections, visit the project page. Code is available in a repo on GitHub.