d3 would be the obvious choice to me. I have only taken a cursory look at your code but strikes me that it could be fairly straight forward to rewrite it using d3.
d3 is just a low-level combination of HTML, CSS, JS and SVG. It's seldom obvious how anything is easy to do "using d3," unless manipulating a table of data.
Essentially, if you're a raw d3 programmer, you're a front-end web engineer.