James Adam Buckland


Here I attempted to render the NYC Subway system as a force-directed graph in d3.js. The purpose of a force-directed graph is to

“…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.