d3-jetpackās d3.conventions can now create canvas and html elements. Here d3.conventions({layers: 'csd'})
makes an canvas ctx, svg and div with a shared coordinate system. Yellow shapes are drawn on canvas, cyan on svg and purple on html.
Layers are position absolutely on top of each other in the order listed in the layer string. To create an svg with two canvas elements on top:
var {layers: [svg, bg_ctx, fg_ctx]} = d3.conventions({layers: 'scc'})
Hurricane How-To describes using multiple renders for something more practical than bouncing circles.