The New York & Erie Railroad
In 1855, Daniel McCallum and George Holt Henshaw drew a railroad as a tree. Directors form the roots, operating divisions branch into tracks, and workers gather around stations. Explore the reconstruction to see how that image joins a chain of authority with the places and people doing the work.
Two diagrams occupy the same tree
Choose Authority and the page reads like McCallum's management system: power begins with the directors, concentrates in the president and general superintendent, then follows five operating lines to local stations. ChooseWorkforce and the same geometry becomes a distribution display. Leaf color identifies work and leaf quantity reflects the representative crew count. The diagram does not rebuild the railroad—it restyles and reweights the same tree.
How the branches are arranged
Each division forms a trunk, with stations placed along it in route order. Crew branches grow beside their stations, and dots show representative employee counts. Changing a station or headcount updates the drawing from the data.
import { NetworkCustomChart } from "semiotic" import { networkHitTarget } from "semiotic/recipes" function railroadOrganizationLayout(ctx) { const { plot } = ctx.dimensions const root = { x: plot.width / 2, y: plot.height - 185 } const positions = new Map() divisions.forEach((division, i) => { // Five cubic trunks radiate from the general superintendent. const end = divisionEndpoint(i, plot) const trunk = cubicFrom(root, end) division.stations.forEach((station, j) => { const p = cubicPoint(trunk, 0.23 + j * 0.15) positions.set(station.id, p) // Workforce boughs grow normal to the trunk. Their leaf count and // color come from the crew datum, never from hand-authored x/y. station.crews.forEach((crew, k) => { positions.set(crew.id, growBough(p, cubicTangent(trunk, j), k)) }) }) }) return { sceneNodes: ctx.nodes.map((wrapped) => { const d = wrapped.data ?? wrapped const p = positions.get(d.id) return networkHitTarget({ x: p.x, y: p.y, r: hitRadius(d), datum: d, id: d.id }) }), overlays: <RailroadPlate positions={positions} config={ctx.config} /> } } <NetworkCustomChart nodes={nodes} edges={edges} layout={railroadOrganizationLayout} layoutConfig={{ view, employeeFilter }} // geometry-changing config only selection={{ name: "erie-active" }} // hover/lock restyles, no relayout annotations={editorialNotes} // anchored to computed node positions enableHover onObservation={handleObservation} // hover, click, keyboard focus accessibleTable />Why this still behaves like a chart
The plate is art-directed, but every office and crew still has an invisible hit target behind it. Hover, keyboard focus, tooltips, click-to-hold, the accessible data table, and export all keep working. The custom drawing owns the railroad geometry; the chart frame still owns the interaction.
Historical structure and wording are based on Daniel C. McCallum and G. H. Henshaw's1855 diagram in the Library of Congress. The Library describes the straight branches as railroad trackage radiating from the general superintendent and the botanical branches as named functional offices. Station names follow the historical route; crew counts on this page are deterministic, representative values and are not a transcription of the plate's statistical table.