{"url":"https://api.github.com/gists/1021103","forks_url":"https://api.github.com/gists/1021103/forks","commits_url":"https://api.github.com/gists/1021103/commits","id":"1021103","node_id":"MDQ6R2lzdDEwMjExMDM=","git_pull_url":"https://gist.github.com/1021103.git","git_push_url":"https://gist.github.com/1021103.git","html_url":"https://gist.github.com/mbostock/1021103","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/1021103/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/1021103/raw/2f856c8850d4df1c4156f0729afafe22bb4b0879/index.html","size":3353,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<title>Superformula</title>\n<style>\n\npath {\n  stroke-width: 1.5px;\n  stroke: #666;\n  fill: #ddd;\n}\n\n#controls {\n  position: absolute;\n  width: 240px;\n  font: 10px sans-serif;\n}\n\n#controls span,\n#controls label {\n  position: relative;\n  top: -5px;\n  padding: 5px;\n  display: inline-block;\n  width: 20px;\n}\n\n#controls button {\n  font: 10px sans-serif;\n  padding: 5px;\n  width: 70px;\n}\n\n</style>\n<div id=\"controls\"></div>\n<script src=\"//d3js.org/d3.v3.min.js\"></script>\n<script src=\"superformula.js\"></script>\n<script>\n\nvar types = {\n  asterisk: {m: 12, n1: .3, n2: 0, n3: 10, a: 1, b: 1},\n  bean: {m: 2, n1: 1, n2: 4, n3: 8, a: 1, b: 1},\n  butterfly: {m: 3, n1: 1, n2: 6, n3: 2, a: .6, b: 1},\n  circle: {m: 4, n1: 2, n2: 2, n3: 2, a: 1, b: 1},\n  clover: {m: 6, n1: .3, n2: 0, n3: 10, a: 1, b: 1},\n  cloverFour: {m: 8, n1: 10, n2: -1, n3: -8, a: 1, b: 1},\n  cross: {m: 8, n1: 1.3, n2: .01, n3: 8, a: 1, b: 1},\n  diamond: {m: 4, n1: 1, n2: 1, n3: 1, a: 1, b: 1},\n  drop: {m: 1, n1: .5, n2: .5, n3: .5, a: 1, b: 1},\n  ellipse: {m: 4, n1: 2, n2: 2, n3: 2, a: 9, b: 6},\n  gear: {m: 19, n1: 100, n2: 50, n3: 50, a: 1, b: 1},\n  heart: {m: 1, n1: .8, n2: 1, n3: -8, a: 1, b: .18},\n  heptagon: {m: 7, n1: 1000, n2: 400, n3: 400, a: 1, b: 1},\n  hexagon: {m: 6, n1: 1000, n2: 400, n3: 400, a: 1, b: 1},\n  malteseCross: {m: 8, n1: .9, n2: .1, n3: 100, a: 1, b: 1},\n  pentagon: {m: 5, n1: 1000, n2: 600, n3: 600, a: 1, b: 1},\n  rectangle: {m: 4, n1: 100, n2: 100, n3: 100, a: 2, b: 1},\n  roundedStar: {m: 5, n1: 2, n2: 7, n3: 7, a: 1, b: 1},\n  square: {m: 4, n1: 100, n2: 100, n3: 100, a: 1, b: 1},\n  star: {m: 5, n1: 30, n2: 100, n3: 100, a: 1, b: 1},\n  triangle: {m: 3, n1: 100, n2: 200, n3: 200, a: 1, b: 1}\n};\n\nvar format = d3.format(\".4n\");\n\nvar scale = d3.scale.linear()\n    .domain([-10, 20, 1000])\n    .range([0, 800, 1000]);\n\nvar svg = d3.select(\"body\")\n  .append(\"svg\")\n    .attr(\"width\", 960)\n    .attr(\"height\", 500);\n\nvar shape = d3.superformula()\n    .type(\"asterisk\")\n    .size(100000)\n    .segments(3600);\n\nvar path = svg.append(\"path\")\n    .attr(\"class\", \"big\")\n    .attr(\"transform\", \"translate(480,250)\")\n    .attr(\"d\", shape);\n\nvar control = d3.select(\"#controls\")\n  .selectAll(\"div\")\n    .data(d3.entries(types.asterisk))\n  .enter().append(\"div\")\n    .attr(\"id\", function(d) { return d.key; });\n\ncontrol.append(\"label\")\n    .text(function(d) { return d.key; });\n\ncontrol.append(\"input\")\n    .attr(\"type\", \"range\")\n    .attr(\"max\", 1000)\n    .attr(\"min\", 0)\n    .property(\"value\", function(d) { return scale(d.value); })\n    .on(\"change\", changed)\n    .on(\"input\", changed);\n\ncontrol.append(\"span\")\n    .text(function(d) { return format(d.value); });\n\nd3.select(\"#controls\")\n  .append(\"div\")\n  .selectAll(\"button\")\n    .data(d3.entries(types))\n  .enter().append(\"button\")\n    .text(function(d) { return d.key; })\n    .on(\"click\", function(d) {\n      for (var param in d.value) {\n        var control = d3.select(\"#\" + param);\n        control.select(\"input\").property(\"value\", scale(d.value[param]));\n        control.select(\"span\").text(format(d.value[param]));\n        shape.param(param, d.value[param]);\n      }\n      path.attr(\"d\", shape);\n    });\n\nfunction changed(d) {\n  var v = scale.invert(this.value);\n  path.attr(\"d\", shape.param(d.key, v));\n  d3.select(this.nextSibling).text(format(v));\n}\n\n</script>\n","encoding":"utf-8"},"readme.md":{"filename":"readme.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/1021103/raw/ac755de20a896ca3f537cd56460edb0ee0aad030/readme.md","size":195,"truncated":false,"content":"[Christophe Viau](http://christopheviau.com/) implemented a new shape type as a [D3 plugin](https://github.com/d3/d3-plugins/) based on [superformulas](http://en.wikipedia.org/wiki/Superformula).","encoding":"utf-8"},"superformula.js":{"filename":"superformula.js","type":"text/javascript","language":"JavaScript","raw_url":"https://gist.githubusercontent.com/mbostock/1021103/raw/85dc9a91c459814733fb46140ca6ed128069617d/superformula.js","size":3233,"truncated":false,"content":"(function() {\n  var _symbol = d3.svg.symbol(),\n      _line = d3.svg.line();\n\n  d3.superformula = function() {\n    var type = _symbol.type(),\n        size = _symbol.size(),\n        segments = size,\n        params = {};\n\n    function superformula(d, i) {\n      var n, p = _superformulaTypes[type.call(this, d, i)];\n      for (n in params) p[n] = params[n].call(this, d, i);\n      return _superformulaPath(p, segments.call(this, d, i), Math.sqrt(size.call(this, d, i)));\n    }\n\n    superformula.type = function(x) {\n      if (!arguments.length) return type;\n      type = d3.functor(x);\n      return superformula;\n    };\n\n    superformula.param = function(name, value) {\n      if (arguments.length < 2) return params[name];\n      params[name] = d3.functor(value);\n      return superformula;\n    };\n\n    // size of superformula in square pixels\n    superformula.size = function(x) {\n      if (!arguments.length) return size;\n      size = d3.functor(x);\n      return superformula;\n    };\n\n    // number of discrete line segments\n    superformula.segments = function(x) {\n      if (!arguments.length) return segments;\n      segments = d3.functor(x);\n      return superformula;\n    };\n\n    return superformula;\n  };\n\n  function _superformulaPath(params, n, diameter) {\n    var i = -1,\n        dt = 2 * Math.PI / n,\n        t,\n        r = 0,\n        x,\n        y,\n        points = [];\n\n    while (++i < n) {\n      t = params.m * (i * dt - Math.PI) / 4;\n      t = Math.pow(Math.abs(Math.pow(Math.abs(Math.cos(t) / params.a), params.n2)\n        + Math.pow(Math.abs(Math.sin(t) / params.b), params.n3)), -1 / params.n1);\n      if (t > r) r = t;\n      points.push(t);\n    }\n\n    r = diameter * Math.SQRT1_2 / r;\n    i = -1; while (++i < n) {\n      x = (t = points[i] * r) * Math.cos(i * dt);\n      y = t * Math.sin(i * dt);\n      points[i] = [Math.abs(x) < 1e-6 ? 0 : x, Math.abs(y) < 1e-6 ? 0 : y];\n    }\n\n    return _line(points) + \"Z\";\n  }\n\n  var _superformulaTypes = {\n    asterisk: {m: 12, n1: .3, n2: 0, n3: 10, a: 1, b: 1},\n    bean: {m: 2, n1: 1, n2: 4, n3: 8, a: 1, b: 1},\n    butterfly: {m: 3, n1: 1, n2: 6, n3: 2, a: .6, b: 1},\n    circle: {m: 4, n1: 2, n2: 2, n3: 2, a: 1, b: 1},\n    clover: {m: 6, n1: .3, n2: 0, n3: 10, a: 1, b: 1},\n    cloverFour: {m: 8, n1: 10, n2: -1, n3: -8, a: 1, b: 1},\n    cross: {m: 8, n1: 1.3, n2: .01, n3: 8, a: 1, b: 1},\n    diamond: {m: 4, n1: 1, n2: 1, n3: 1, a: 1, b: 1},\n    drop: {m: 1, n1: .5, n2: .5, n3: .5, a: 1, b: 1},\n    ellipse: {m: 4, n1: 2, n2: 2, n3: 2, a: 9, b: 6},\n    gear: {m: 19, n1: 100, n2: 50, n3: 50, a: 1, b: 1},\n    heart: {m: 1, n1: .8, n2: 1, n3: -8, a: 1, b: .18},\n    heptagon: {m: 7, n1: 1000, n2: 400, n3: 400, a: 1, b: 1},\n    hexagon: {m: 6, n1: 1000, n2: 400, n3: 400, a: 1, b: 1},\n    malteseCross: {m: 8, n1: .9, n2: .1, n3: 100, a: 1, b: 1},\n    pentagon: {m: 5, n1: 1000, n2: 600, n3: 600, a: 1, b: 1},\n    rectangle: {m: 4, n1: 100, n2: 100, n3: 100, a: 2, b: 1},\n    roundedStar: {m: 5, n1: 2, n2: 7, n3: 7, a: 1, b: 1},\n    square: {m: 4, n1: 100, n2: 100, n3: 100, a: 1, b: 1},\n    star: {m: 5, n1: 30, n2: 100, n3: 100, a: 1, b: 1},\n    triangle: {m: 3, n1: 100, n2: 200, n3: 200, a: 1, b: 1}\n  };\n\n  d3.superformulaTypes = d3.keys(_superformulaTypes);\n})();\n","encoding":"utf-8"},"thumbnail.png":{"filename":"thumbnail.png","type":"image/png","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/1021103/raw/792d9fdd80d77ae1ae97ef20051c59b974a7d998/thumbnail.png","size":10795,"truncated":false,"content":"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\n","encoding":"base64"}},"public":true,"created_at":"2011-06-12T00:00:36Z","updated_at":"2024-01-03T15:41:14Z","description":"Superformula Explorer","comments":3,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/1021103/comments","owner":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"forks":[{"url":"https://api.github.com/gists/11348671","user":{"login":"illucent","id":3680424,"node_id":"MDQ6VXNlcjM2ODA0MjQ=","avatar_url":"https://avatars.githubusercontent.com/u/3680424?v=4","gravatar_id":"","url":"https://api.github.com/users/illucent","html_url":"https://github.com/illucent","followers_url":"https://api.github.com/users/illucent/followers","following_url":"https://api.github.com/users/illucent/following{/other_user}","gists_url":"https://api.github.com/users/illucent/gists{/gist_id}","starred_url":"https://api.github.com/users/illucent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/illucent/subscriptions","organizations_url":"https://api.github.com/users/illucent/orgs","repos_url":"https://api.github.com/users/illucent/repos","events_url":"https://api.github.com/users/illucent/events{/privacy}","received_events_url":"https://api.github.com/users/illucent/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Andrew Starodubtsev","company":null,"blog":"https://www.illucent.art","location":"Venus","email":null,"hireable":true,"bio":null,"twitter_username":null,"public_repos":34,"public_gists":557,"followers":206,"following":2760,"created_at":"2013-02-23T18:21:13Z","updated_at":"2026-04-24T17:09:02Z"},"id":"11348671","created_at":"2014-04-27T15:36:53Z","updated_at":"2015-08-29T14:00:38Z"},{"url":"https://api.github.com/gists/4e4f5c8b8abb87dc1efb","user":{"login":"saurfang","id":4317392,"node_id":"MDQ6VXNlcjQzMTczOTI=","avatar_url":"https://avatars.githubusercontent.com/u/4317392?v=4","gravatar_id":"","url":"https://api.github.com/users/saurfang","html_url":"https://github.com/saurfang","followers_url":"https://api.github.com/users/saurfang/followers","following_url":"https://api.github.com/users/saurfang/following{/other_user}","gists_url":"https://api.github.com/users/saurfang/gists{/gist_id}","starred_url":"https://api.github.com/users/saurfang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saurfang/subscriptions","organizations_url":"https://api.github.com/users/saurfang/orgs","repos_url":"https://api.github.com/users/saurfang/repos","events_url":"https://api.github.com/users/saurfang/events{/privacy}","received_events_url":"https://api.github.com/users/saurfang/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Forest Fang","company":"@stripe","blog":"https://medium.com/@saurfang","location":null,"email":null,"hireable":true,"bio":null,"twitter_username":null,"public_repos":106,"public_gists":24,"followers":153,"following":33,"created_at":"2013-05-02T03:19:56Z","updated_at":"2026-04-25T03:24:20Z"},"id":"4e4f5c8b8abb87dc1efb","created_at":"2015-02-11T03:11:09Z","updated_at":"2015-08-29T14:15:14Z"},{"url":"https://api.github.com/gists/37dcf4a32fe20f0a0bd9","user":{"login":"shawnhuang2015","id":10817960,"node_id":"MDQ6VXNlcjEwODE3OTYw","avatar_url":"https://avatars.githubusercontent.com/u/10817960?v=4","gravatar_id":"","url":"https://api.github.com/users/shawnhuang2015","html_url":"https://github.com/shawnhuang2015","followers_url":"https://api.github.com/users/shawnhuang2015/followers","following_url":"https://api.github.com/users/shawnhuang2015/following{/other_user}","gists_url":"https://api.github.com/users/shawnhuang2015/gists{/gist_id}","starred_url":"https://api.github.com/users/shawnhuang2015/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shawnhuang2015/subscriptions","organizations_url":"https://api.github.com/users/shawnhuang2015/orgs","repos_url":"https://api.github.com/users/shawnhuang2015/repos","events_url":"https://api.github.com/users/shawnhuang2015/events{/privacy}","received_events_url":"https://api.github.com/users/shawnhuang2015/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Shawn Huang","company":null,"blog":"","location":"Mountain View, CA, USA","email":"hxiaoke8@gmail.com","hireable":null,"bio":"Information Visualization and Visual Analytics Researcher;\r\nFull-Stack Front-End Engineer;","twitter_username":null,"public_repos":29,"public_gists":2,"followers":23,"following":37,"created_at":"2015-02-02T20:45:59Z","updated_at":"2026-02-02T22:45:47Z"},"id":"37dcf4a32fe20f0a0bd9","created_at":"2015-07-15T20:59:56Z","updated_at":"2015-08-29T14:25:01Z"},{"url":"https://api.github.com/gists/9d54c3b3bb7c3e262424def062aa3060","user":{"login":"rlugojr","id":7250897,"node_id":"MDQ6VXNlcjcyNTA4OTc=","avatar_url":"https://avatars.githubusercontent.com/u/7250897?v=4","gravatar_id":"","url":"https://api.github.com/users/rlugojr","html_url":"https://github.com/rlugojr","followers_url":"https://api.github.com/users/rlugojr/followers","following_url":"https://api.github.com/users/rlugojr/following{/other_user}","gists_url":"https://api.github.com/users/rlugojr/gists{/gist_id}","starred_url":"https://api.github.com/users/rlugojr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlugojr/subscriptions","organizations_url":"https://api.github.com/users/rlugojr/orgs","repos_url":"https://api.github.com/users/rlugojr/repos","events_url":"https://api.github.com/users/rlugojr/events{/privacy}","received_events_url":"https://api.github.com/users/rlugojr/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Ray Lugo, Jr.","company":null,"blog":"https://rlugojr.github.io","location":"New York, NY","email":null,"hireable":null,"bio":"Technology fascinates me and thankfully we live in a time of great innovations.  I love coding, forking and learning from fellow GitHubbers.","twitter_username":null,"public_repos":20,"public_gists":51,"followers":37,"following":125,"created_at":"2014-04-10T12:41:55Z","updated_at":"2024-08-23T14:53:21Z"},"id":"9d54c3b3bb7c3e262424def062aa3060","created_at":"2016-06-26T06:05:20Z","updated_at":"2016-06-26T06:05:20Z"}],"history":[{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"d58cac9524a1438b554a59669379967b17473aa3","committed_at":"2016-02-09T00:13:48Z","change_status":{"total":13,"additions":8,"deletions":5},"url":"https://api.github.com/gists/1021103/d58cac9524a1438b554a59669379967b17473aa3"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"c25d93c0de503748e7c667ce3edc3cd86dfae94e","committed_at":"2016-02-09T00:13:13Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/1021103/c25d93c0de503748e7c667ce3edc3cd86dfae94e"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"275ad9069bac8cdc7ebb7afc7509961ba7ac643c","committed_at":"2015-10-30T21:27:56Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/1021103/275ad9069bac8cdc7ebb7afc7509961ba7ac643c"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"bb3537af4b4c88cff3bc33f0cc801549ba307c32","committed_at":"2015-06-11T15:11:46Z","change_status":{"total":121,"additions":113,"deletions":8},"url":"https://api.github.com/gists/1021103/bb3537af4b4c88cff3bc33f0cc801549ba307c32"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"70510b9d0a14f65713aca5ea237d4284443dfc84","committed_at":"2012-10-12T03:42:43Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/1021103/70510b9d0a14f65713aca5ea237d4284443dfc84"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"5e013e220a7209340ac5b0bb19226c51614f756a","committed_at":"2012-10-11T22:39:52Z","change_status":{"total":27,"additions":25,"deletions":2},"url":"https://api.github.com/gists/1021103/5e013e220a7209340ac5b0bb19226c51614f756a"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"3648b50d96192c9091fda87d0ff9c486262f0460","committed_at":"2012-10-11T22:39:09Z","change_status":{"total":4,"additions":2,"deletions":2},"url":"https://api.github.com/gists/1021103/3648b50d96192c9091fda87d0ff9c486262f0460"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"668d8571ea382af18dc52abbcbddb1c007c93443","committed_at":"2012-10-11T22:38:29Z","change_status":{"total":155,"additions":15,"deletions":140},"url":"https://api.github.com/gists/1021103/668d8571ea382af18dc52abbcbddb1c007c93443"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"e0cb19e788e6c5dc58a7a8dbc011911fe34c5f2e","committed_at":"2011-06-12T00:16:38Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/1021103/e0cb19e788e6c5dc58a7a8dbc011911fe34c5f2e"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"686be3f3bb71eb62c8c559b94b2dd6c9a723f5fe","committed_at":"2011-06-12T00:09:39Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/1021103/686be3f3bb71eb62c8c559b94b2dd6c9a723f5fe"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"f4a81d6a50291badcf88beaddd602ae93ca3ace5","committed_at":"2011-06-12T00:08:53Z","change_status":{},"url":"https://api.github.com/gists/1021103/f4a81d6a50291badcf88beaddd602ae93ca3ace5"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"1ec6f4169ccbeb4e8bfb696f3295a6e18820abd3","committed_at":"2011-06-12T00:07:24Z","change_status":{},"url":"https://api.github.com/gists/1021103/1ec6f4169ccbeb4e8bfb696f3295a6e18820abd3"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"4e8d67c9c70ccc2f134037636c1644e0b8576ce9","committed_at":"2011-06-12T00:06:22Z","change_status":{},"url":"https://api.github.com/gists/1021103/4e8d67c9c70ccc2f134037636c1644e0b8576ce9"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"6bc1ebe10c0d66ec1f553b0af05a2238757a3ed8","committed_at":"2011-06-12T00:05:55Z","change_status":{},"url":"https://api.github.com/gists/1021103/6bc1ebe10c0d66ec1f553b0af05a2238757a3ed8"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"90f75d5e22cf6f84c00bae87dedbc574e9b60501","committed_at":"2011-06-12T00:04:33Z","change_status":{},"url":"https://api.github.com/gists/1021103/90f75d5e22cf6f84c00bae87dedbc574e9b60501"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"a773ef9c51d5c836a919329494e0754423b2ee8f","committed_at":"2011-06-12T00:03:31Z","change_status":{},"url":"https://api.github.com/gists/1021103/a773ef9c51d5c836a919329494e0754423b2ee8f"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"b864d29d46ee9072f1504c75ca7bd88e3d3ee5ed","committed_at":"2011-06-12T00:00:36Z","change_status":{},"url":"https://api.github.com/gists/1021103/b864d29d46ee9072f1504c75ca7bd88e3d3ee5ed"}],"truncated":false}