The example shows the d3-pathLayout plugin fitting an array of nodes to custom SVG paths.
Each path is represented by a dotted light grey line, and each node is represented by a letter. For each path, d3-pathLayout positions each node and the example then transitions the nodes to the calculated position.
Source code for d3-pathLayout available here.
https://d3js.org/d3.v4.min.js