How was the "Search by chords" network chart created?

I’m referring to the chart on the left panel of http://www.hooktheory.com/trends. I think it’s an incredible way of displaying information waiting for input from the user.

I love it and want to use it on a completely different service (not music related). Inspecting it, it seems to be kind of hand-made… could anyone give me some pointers on some tools that I could use to make something similar with a differetnt dataset?

Thanks!

@mexindian, the “ball chains” use a physics library called Arbor JS. We had to hack in some custom stuff to make it play nicely with our asynchronous calls that update the nodes / song list. You might also consider the D3 libraries which are well supported and probably where we would start if we had to do it all over again.