grid.padding = function(value) {
      if (!arguments.length) return padding;
      padding = value;
      return grid;
    }

    return grid;
  };
})();


var width = 960,
    height = 960,
    TAU = Math.PI * 2;

var grid = d3.layout.grid()
  .size([width, height]);

var color = d3.scale.linear()
  .interpolate(d3.interpolateHcl)
  .domain([0, 100])
  .range(["#F66A96", "#3E6E9C"]);

var data = d3.range(50).map(function(d) {
  return {
    id: d,
    size: 1 + Math.floor(Math.random() * 50),
    r: Math.random() * 50,
    color: Math.floor(Math.random() * 100),
    f: (Math.random() > 0.5 ? -1 : 1) * (Math.random() * 10000 + 1000)
  };