plot = (params, interpolator, xDomain, yDomain) =>
densityPlot(
pointDensity(width, width)
.xDomain(xDomain)
.yDomain(yDomain)
.batchSize(1e5)
)
.color(buf => d3.scaleSequentialLog([1, d3.max(buf) / 2], interpolator))
.background('#fff')
.drawAxes(false)(
cliffordOrbit(numPoints, 0, 0, params.a, params.b, params.c, params.d)
)