Try just plugging in a weighted graph into force-directed graph tools. Nodes might be the current endpoints of the lines in score mode, or... more ideally, we'd have a node per neighbourhood (area bounded by severances, assuming it's not too huge). Then we find all the walking paths between adjacent neighbourhoods and decide one edge weight for each pair (maybe max or min, not sure).
A second step would be trying metro map algorithms, which can preserve node positions somewhat.
Try just plugging in a weighted graph into force-directed graph tools. Nodes might be the current endpoints of the lines in score mode, or... more ideally, we'd have a node per neighbourhood (area bounded by severances, assuming it's not too huge). Then we find all the walking paths between adjacent neighbourhoods and decide one edge weight for each pair (maybe max or min, not sure).
A second step would be trying metro map algorithms, which can preserve node positions somewhat.
References: https://github.com/Tulip-Dev/tulip, https://scholar.google.com/citations?user=Wum9ploAAAAJ
Idea from AIUK!