This was built using d3.js based upon code written by Adam Pearce. My code is available on my GitHub page
Many thanks to Adam for helping me improve this code !