This is an alternative method to use d3 with canvas. This uses d3's data binding with DOM nodes with a custom namespace, as demonstrated here. This method gives significant performance improvements over using svg, while still allowing us to use data binding to control update selections as well as transitions.
Compare to Canvas + D3 Force.