<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Maps on Kabus.eu</title><link>https://kabus.eu/tags/maps/</link><description>Recent content in Maps on Kabus.eu</description><generator>Hugo -- gohugo.io</generator><language>en-GB</language><lastBuildDate>Wed, 30 Sep 2026 16:03:09 +0200</lastBuildDate><atom:link href="https://kabus.eu/tags/maps/index.xml" rel="self" type="application/rss+xml"/><item><title>A curvy map for the Dutch railway network inspired by van Gogh</title><link>https://kabus.eu/2026/09/30/spoorkaart/</link><pubDate>Wed, 30 Sep 2026 15:12:00 +0200</pubDate><guid>https://kabus.eu/2026/09/30/spoorkaart/</guid><description>&lt;img src="https://kabus.eu/2026/09/30/spoorkaart/cover.png" alt="Featured image of post A curvy map for the Dutch railway network inspired by van Gogh" /&gt;&lt;p&gt;This year, NS (Dutch Railways) ran a design competition for a new network map.&#10;It ties in with the new line numbers (IC5, S43, RS20, &amp;hellip;), which will be&#10;introduced on 13 December. Participants got a list of every line and its stops,&#10;and we had the summer to make a map.&lt;/p&gt;&#10;&lt;p&gt;My entry is called &lt;strong&gt;&amp;ldquo;Van Gogh&amp;rdquo;&lt;/strong&gt;. It is loosely inspired by &lt;em&gt;The Starry Night&lt;/em&gt;:&#10;wide, round lines that flow across the country, with no sharp corners.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a class="link" href="spoorlijnenkaart-desmond-kabus-20260731-1005.pdf" &gt;full map as PDF&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Spoorlijnen in Nederland – The Dutch Railway Network." class="gallery-image" data-flex-basis="169px" data-flex-grow="70" height="2828" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://kabus.eu/2026/09/30/spoorkaart/spoorlijnenkaart-desmond-kabus-20260731-1005.png" srcset="https://kabus.eu/2026/09/30/spoorkaart/spoorlijnenkaart-desmond-kabus-20260731-1005_hu_18fdbabfee27ec50.png 800w, https://kabus.eu/2026/09/30/spoorkaart/spoorlijnenkaart-desmond-kabus-20260731-1005_hu_86b0812c2b5d9f14.png 1600w, https://kabus.eu/2026/09/30/spoorkaart/spoorlijnenkaart-desmond-kabus-20260731-1005.png 2000w" width="2000"&gt;&lt;/p&gt;&#10;&lt;p&gt;I just heard back: it was not selected as the winner. However, the jury wrote&#10;that it was &amp;ldquo;an enormous conversation starter and crowd favourite&amp;rdquo;. Colleagues&#10;walking past were drawn in by the colourful round shapes, and they were&#10;surprised it also worked well as a map. I&amp;rsquo;ll take that!&lt;/p&gt;&#10;&lt;p&gt;The map was also discussed on&#10;&lt;a class="link" href="https://www.reddit.com/r/TransitDiagrams/comments/1wu4yk6/i_made_a_curvy_map_for_the_dutch_railway_network/" target="_blank" rel="noopener"&#10; &gt;Reddit&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h1 id="design-choices"&gt;Design choices&#10;&lt;/h1&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Curves for following lines.&lt;/strong&gt; The wide round lines and bar-shaped station&#10;markers make it easy to trace a line through the whole country, even without&#10;colour. As a bonus, the Randstad shows up as the ring it really is.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;14 iconic colours, no clashes.&lt;/strong&gt; The colours are assigned so that no two&#10;lines stopping at the same station ever share one. My pitch to NS was to use&#10;the same colours on platform screens, timetable posters and in the NS app.&#10;Then, people who struggle to read, or cannot read at all, can find their line&#10;by colour.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Merged lines use colour gradients.&lt;/strong&gt; Where lines share most of their route&#10;(IC5/6, IC20/21/22, IC27/28, IC30/31/32, S43/44, S69/79, S73/75), one line&#10;gradually fades into the other&amp;rsquo;s colour and they share a label.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Distorted geography.&lt;/strong&gt; The Netherlands is still recognisable, but it is&#10;stretched so that the dense areas get more room and the portrait page is&#10;filled.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Readability rules.&lt;/strong&gt; Station names are always horizontal, 14pt for stations&#10;and 17pt for major hubs (knooppunten). Line labels are black or white text on&#10;the line colour, with a contrast ratio of at least 4.5:1. I checked the map&#10;with greyscale and protanopia, deuteranopia, and tritanopia simulations.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;International trains&lt;/strong&gt; without line numbers (Eurostar, ICE, NightJet,&#10;European Sleeper) are drawn as hollow double lines. The first station across&#10;the border is shown, with a list of far-off destinations.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h1 id="how-it-was-made"&gt;How it was made&#10;&lt;/h1&gt;&lt;p&gt;The map is half hand-drawn, half generated. I placed stations and rough line&#10;paths in Inkscape. Then, a Python pipeline (networkx, NumPy, and SciPy)&#10;rebuilds every line from the network data:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Each line section is drawn as straight → circular arc → straight, fitted&#10;between stations.&lt;/li&gt;&#10;&lt;li&gt;Parallel lines are bundled and ordered, with each line&amp;rsquo;s order kept&#10;consistent from station to station.&lt;/li&gt;&#10;&lt;li&gt;A small max-cut solver alternates light and dark colours within a bundle, so&#10;neighbouring lines always contrast.&lt;/li&gt;&#10;&lt;li&gt;Line labels and gradients for merged lines are generated automatically.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;It took about 60 versions to get here.&lt;/p&gt;&#10;&lt;h1 id="things-i-found-in-the-official-data"&gt;Things I found in the official data&#10;&lt;/h1&gt;&lt;p&gt;Some line numbers appeared twice (IC21, IC23, RS34), so I renumbered the second&#10;one of each. Some trains were missing (RB51, RB64, and the&#10;Dordrecht&amp;ndash;Geldermalsen stoptrein, which I called RS9). S67 apparently skipped&#10;Arnhem Presikhaaf, which I assume was a mistake.&lt;/p&gt;&#10;</description></item></channel></rss>