Creating simple shape objects.
This can simplify drawing to canvas:
ellipse.context(canvas).stroke();
It also lets you encapsulates geometry-related helper functions. For example, the parametric function of an ellipse mapping to Cartesian coordinates:
var point = ellipse.cartesian(theta); // point = {x, y}
https://d3js.org/d3.v3.min.js