position the nodes of a graph in two-dimensional or three-dimensional space so that all the edges are of more or less equal length and there are as few crossing edges as possible, by assigning forces among the set of edges and the set of nodes, based on their relative positions, and then using these forces either to simulate the motion of the edges and nodes or to minimize their energy. ~ Wikipedia
The subway data was entered manually, (doing the work by hand took less time and energy than its automation would have) and is rendered live in your browser. The hard part is finding a satisfying set of parameters for a clean display. Still, it’s fun to play around with.