{"url":"https://api.github.com/gists/2647924","forks_url":"https://api.github.com/gists/2647924/forks","commits_url":"https://api.github.com/gists/2647924/commits","id":"2647924","node_id":"MDQ6R2lzdDI2NDc5MjQ=","git_pull_url":"https://gist.github.com/2647924.git","git_push_url":"https://gist.github.com/2647924.git","html_url":"https://gist.github.com/mbostock/2647924","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/2647924/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n","encoding":"utf-8"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/2647924/raw/0c44c91352120701963339ddd096dbc0bc391522/README.md","size":199,"truncated":false,"content":"Compare to [Canvas Swarm](http://bl.ocks.org/2647922).\n\nA response to Trevor Bedford's post, [Comparing performance of Processing.js and D3.js](http://www.trevorbedford.com/archive/may_07_2012.html).","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/2647924/raw/af1c6533653e495ddea6d5462bcb818a0a0bfc69/index.html","size":1438,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<title>SVG Swarm</title>\n<style>\n\nsvg {\n  position: absolute;\n  top: 0;\n}\n\ncircle {\n  fill: steelblue;\n  stroke: #666;\n  stroke-width: 1.5px;\n}\n\n</style>\n<div id=\"fps\">FPS: <span>?</span></div>\n<script src=\"//d3js.org/d3.v3.min.js\"></script>\n<script>\n\nvar data = d3.range(500).map(function() {\n  return {xloc: 0, yloc: 0, xvel: 0, yvel: 0};\n});\n\nvar width = 960,\n    height = 500;\n\nvar x = d3.scale.linear()\n    .domain([-5, 5])\n    .range([0, width]);\n\nvar y = d3.scale.linear()\n    .domain([-5, 5])\n    .range([0, height]);\n\nvar time0 = Date.now(),\n    time1;\n\nvar fps = d3.select(\"#fps span\");\n\nvar svg = d3.select(\"body\").append(\"svg\")\n    .attr(\"width\", width)\n    .attr(\"height\", height);\n\nvar circle = svg.selectAll(\"circle\")\n    .data(data)\n  .enter().append(\"circle\")\n    .attr(\"cx\", 10)\n    .attr(\"cy\", 10)\n    .attr(\"r\", 1);\n\nd3.timer(function() {\n\n  data.forEach(function(d) {\n    d.xloc += d.xvel;\n    d.yloc += d.yvel;\n    d.xvel += 0.04 * (Math.random() - .5) - 0.05 * d.xvel - 0.0005 * d.xloc;\n    d.yvel += 0.04 * (Math.random() - .5) - 0.05 * d.yvel - 0.0005 * d.yloc;\n  });\n\n  circle\n      .attr(\"transform\", function(d) { return \"translate(\" + x(d.xloc) + \",\" + y(d.yloc) + \")\"; })\n      .attr(\"r\", function(d) { return Math.min(1 + 1000 * Math.abs(d.xvel * d.yvel), 10); });\n\n  time1 = Date.now();\n  fps.text(Math.round(1000 / (time1 - time0)));\n  time0 = time1;\n});\n\n</script>\n","encoding":"utf-8"},"thumbnail.png":{"filename":"thumbnail.png","type":"image/png","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/2647924/raw/6d1464eed44c3c4a159f440c2ec43e2c8ef2e08f/thumbnail.png","size":12253,"truncated":false,"content":"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\n9QAAAABJRU5ErkJggg==\n","encoding":"base64"}},"public":true,"created_at":"2012-05-09T18:47:40Z","updated_at":"2024-06-14T10:45:42Z","description":"SVG Swarm","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/2647924/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},"fork_of":{"url":"https://api.github.com/gists/2647922","forks_url":"https://api.github.com/gists/2647922/forks","commits_url":"https://api.github.com/gists/2647922/commits","id":"2647922","node_id":"MDQ6R2lzdDI2NDc5MjI=","git_pull_url":"https://gist.github.com/2647922.git","git_push_url":"https://gist.github.com/2647922.git","html_url":"https://gist.github.com/mbostock/2647922","files":{},"public":true,"created_at":"2012-05-09T18:47:28Z","updated_at":"2024-10-29T19:32:14Z","description":"Canvas Swarm","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/2647922/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/4074587","user":{"login":"tmcw","id":32314,"node_id":"MDQ6VXNlcjMyMzE0","avatar_url":"https://avatars.githubusercontent.com/u/32314?v=4","gravatar_id":"","url":"https://api.github.com/users/tmcw","html_url":"https://github.com/tmcw","followers_url":"https://api.github.com/users/tmcw/followers","following_url":"https://api.github.com/users/tmcw/following{/other_user}","gists_url":"https://api.github.com/users/tmcw/gists{/gist_id}","starred_url":"https://api.github.com/users/tmcw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmcw/subscriptions","organizations_url":"https://api.github.com/users/tmcw/orgs","repos_url":"https://api.github.com/users/tmcw/repos","events_url":"https://api.github.com/users/tmcw/events{/privacy}","received_events_url":"https://api.github.com/users/tmcw/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Tom MacWright","company":"@val-town","blog":"https://macwright.com/","location":"brooklyn new york","email":null,"hireable":null,"bio":"hi!","twitter_username":null,"public_repos":334,"public_gists":1811,"followers":3705,"following":370,"created_at":"2008-11-02T23:44:49Z","updated_at":"2026-04-25T14:04:11Z"},"id":"4074587","created_at":"2012-11-14T20:32:45Z","updated_at":"2015-10-12T19:18:08Z"},{"url":"https://api.github.com/gists/4d3fdface4597f920fa7","user":{"login":"verticalpalette","id":619672,"node_id":"MDQ6VXNlcjYxOTY3Mg==","avatar_url":"https://avatars.githubusercontent.com/u/619672?v=4","gravatar_id":"","url":"https://api.github.com/users/verticalpalette","html_url":"https://github.com/verticalpalette","followers_url":"https://api.github.com/users/verticalpalette/followers","following_url":"https://api.github.com/users/verticalpalette/following{/other_user}","gists_url":"https://api.github.com/users/verticalpalette/gists{/gist_id}","starred_url":"https://api.github.com/users/verticalpalette/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/verticalpalette/subscriptions","organizations_url":"https://api.github.com/users/verticalpalette/orgs","repos_url":"https://api.github.com/users/verticalpalette/repos","events_url":"https://api.github.com/users/verticalpalette/events{/privacy}","received_events_url":"https://api.github.com/users/verticalpalette/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Daniel Phan","company":"@trythings ","blog":"http://trythings.com","location":"San Francisco","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":0,"public_gists":6,"followers":3,"following":0,"created_at":"2011-02-15T18:26:53Z","updated_at":"2026-05-01T23:35:42Z"},"id":"4d3fdface4597f920fa7","created_at":"2015-03-30T17:51:32Z","updated_at":"2015-08-29T14:18:03Z"},{"url":"https://api.github.com/gists/47703b12ff124ef3c7d932e1c41e7cb2","user":{"login":"IPWright83","id":1374775,"node_id":"MDQ6VXNlcjEzNzQ3NzU=","avatar_url":"https://avatars.githubusercontent.com/u/1374775?v=4","gravatar_id":"","url":"https://api.github.com/users/IPWright83","html_url":"https://github.com/IPWright83","followers_url":"https://api.github.com/users/IPWright83/followers","following_url":"https://api.github.com/users/IPWright83/following{/other_user}","gists_url":"https://api.github.com/users/IPWright83/gists{/gist_id}","starred_url":"https://api.github.com/users/IPWright83/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IPWright83/subscriptions","organizations_url":"https://api.github.com/users/IPWright83/orgs","repos_url":"https://api.github.com/users/IPWright83/repos","events_url":"https://api.github.com/users/IPWright83/events{/privacy}","received_events_url":"https://api.github.com/users/IPWright83/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Ian Wright","company":null,"blog":"https://stackoverflow.com/users/21061/ian?tab=profile","location":"United Kingdom","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":32,"public_gists":20,"followers":14,"following":8,"created_at":"2012-01-24T12:44:49Z","updated_at":"2026-04-23T11:31:01Z"},"id":"47703b12ff124ef3c7d932e1c41e7cb2","created_at":"2017-12-01T11:04:12Z","updated_at":"2017-12-01T11:06:21Z"}],"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":"89be080a55a4b3c668b6e2949a4b27951895d16e","committed_at":"2016-02-09T01:18:45Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/2647924/89be080a55a4b3c668b6e2949a4b27951895d16e"},{"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":"a4bc76b1f6c626c6935255d32713af8915f6ae12","committed_at":"2015-10-31T00:44:46Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/2647924/a4bc76b1f6c626c6935255d32713af8915f6ae12"},{"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":"ef6e249d3a2fafe19a2cd3894b7e995b6c818fa8","committed_at":"2015-06-11T16:06:42Z","change_status":{"total":3,"additions":1,"deletions":2},"url":"https://api.github.com/gists/2647924/ef6e249d3a2fafe19a2cd3894b7e995b6c818fa8"},{"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":"bc9ab436667cebe1dc3ebf37d9d1843b5301b288","committed_at":"2012-10-12T03:52:30Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/2647924/bc9ab436667cebe1dc3ebf37d9d1843b5301b288"},{"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":"5ceb1653ca4f270f469ad54908905fb7fd31af48","committed_at":"2012-05-09T18:48:24Z","change_status":{"total":39,"additions":23,"deletions":16},"url":"https://api.github.com/gists/2647924/5ceb1653ca4f270f469ad54908905fb7fd31af48"},{"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":"8dc705bbf0b566d253aa717540c68690d0e7cc09","committed_at":"2012-05-09T18:47:28Z","change_status":{"total":68,"additions":68,"deletions":0},"url":"https://api.github.com/gists/2647924/8dc705bbf0b566d253aa717540c68690d0e7cc09"}],"truncated":false}