Slime Mould Railways
A slime mould’s rules for growing a network, run live on the Netherlands and measured against the real railway.
- Status
- Live
- Role
- Maker
- Stack
- JavaScript · Web Workers · Sparse Cholesky · WebGL2 · Python · OpenStreetMap
In 2010 a slime mould grew a network of tubes between oat flakes laid out like the cities around Tokyo, and it came out a lot like the Tokyo railway. The scientists behind it wrote down the rules it seems to follow. I took their model and ran it on the Netherlands: 40 cities, the real coast and lakes, and the real railway to measure it against.
It is the model itself, running in your browser, not an animation of it. With the paper’s settings the mould builds about half as much track as the railway and still gets you between two cities a little faster. And every time, it lays a line north from Lelystad across the Noordoostpolder, where the proposed Lelylijn would run.
How it works
- The model. Tero et al.’s, from Science (2010): about 18,500 tubes over the land, flow between pairs of cities by Kirchhoff and Poiseuille, and tubes that grow with the flow through them and wither without it.
- A solver of its own. Every step solves the pressures for every city over the whole country. A sparse Cholesky factorisation, in nested-dissection order and written for this, does it in milliseconds, in a Web Worker.
- The real map. The national border from PDOK, water from AHN height data and OpenStreetMap, and every passenger line from OpenStreetMap, double tracks merged, prepared in Python with numpy and scipy.
- Scored like the paper. Length, average trip and the chance of surviving a cut, against the minimum spanning tree. The mould, the railway and the tree are all measured on the same mesh.
- Drawn in blocks. The live map is one texture of pixel cells under the page, in the same ink, paper and light as the rest of this site.