{"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":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/2647922/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/2647922/raw/e9f7375fef6620e68fd48b481f91b000137cde6f/README.md","size":197,"truncated":false,"content":"Compare to [SVG Swarm](http://bl.ocks.org/2647924).\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).\n","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/2647922/raw/19c03b12d274953d1bd2bf4f25246d9c6a9facbc/index.html","size":1408,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<title>Canvas Swarm</title>\n<style>\n\ncanvas {\n  position: absolute;\n  top: 0;\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    angle = 2 * Math.PI;\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 canvas = d3.select(\"body\").append(\"canvas\")\n    .attr(\"width\", width)\n    .attr(\"height\", height);\n\nvar context = canvas.node().getContext(\"2d\");\ncontext.fillStyle = \"steelblue\";\ncontext.strokeStyle = \"#666\";\ncontext.strokeWidth = 1.5;\n\nd3.timer(function() {\n  context.clearRect(0, 0, width, height);\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    context.beginPath();\n    context.arc(x(d.xloc), y(d.yloc), Math.min(1 + 1000 * Math.abs(d.xvel * d.yvel), 10), 0, angle);\n    context.fill();\n    context.stroke();\n  });\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/2647922/raw/914d7fc1d99b59feef872670959f3951a210a379/thumbnail.png","size":10923,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAYAAADmBo6IAAAAGXRFWHRTb2Z0\nd2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAKk1JREFUeNrsfQd8nNWV719t\n1HvvvVnNluRu3LDpvTxKCFnyAuS3CSEJm91NdrNhl7chLHkLIdmQRwm2ARMw\n4G5wt+UmWcXqvYx6722kGel791xp5BlpRhpVq9w/v8Gj+fr97rmnn2OUkZFR\nampq6jY0NKQ0MjKCn58famtrERQUBCsrK7DfUVBQAGdnZygUCgQGBkJAQGDe\nYMY+TaZJSUmOjNhsiRj7+vrQ398PRqh44okn4ODgwP/eu3cvEhMTUVFRgaee\negr+/v5i+AQE5g9KY2tra84dHR0d+b/PPfccZDIZ5HI5LCws4Onpid27d/Pv\nvb29MDMzE8MmIDDPMHV3d0dISAi6u7vh7e0NY2NjREZGcoIkbtnc3Axzc3Mk\nJCQgKioKXl5eYtQEBOYZRpIktbJ/ncRQCAgsGrQJwhQQEIQpICAgCFNAQBCm\nAOHouWuQmZrgzq3rxGAIzJgwjcUYzC3MGFHKzEzFQAjMCoJjCggIUVZAQEAQ\npoCAIEwBAQFBmAICy5gwhVV2gaBSqVBSUY3h4WExGAJTQhDmAqFfocDZlGyo\nhobm9LzS8BCkIZUY4GUGIcouJCTGLY3mdi187+AFFNW2480X74WxmUxrW3Zu\nPiLCQyETqXpLTpQVnvAFXQbnXkBZHewJD0drRpQTic/O1gbGRkZi3AXHFFgu\n6OnpwXuHr8DY2AgvPLAZVtbWYlAExxS41TidnIN96R0wMTaGl30aT6R//J5t\njAvbisFZAAjCFNCJMD93+NtUMI45hOgQX0aQ1rCytBQDI0TZlY3GphbY2dnA\n0sLCoP2VShXSCuWICvSEnc3ciJ2NjU1shgDubm7ihSywKCvcJYsUJRVyJj72\nGLx/v6IfX59LQ1NL+6yvTT7Xw6eSYG1jI4hScEyB2WJ4SAVjk9lrJxQEkVNY\nivBgf1iYmy+e52P3JbGPiemy18BESJ7A4kdBcSmcHOxQUFGHupYuPH3v1mVP\nmML4I7DoYcKkAEkyQmx4IIJ8FSvimYWOuYCob27Dx4fPcZFzPqFSKvHFt5dR\n39QyreMqa+rQNQ29dqEQFhwAD3dXxjXt4eflLghTYI51JLbqq4xM2OovTfvY\nvKJS9PUbxi1IF+vqV0E1NL3rKBQDGGREPR7ZeYUor6zm3zu7ulEmrxYvc54h\ndMwlAnl1LTwZ1zCXyQzaXxpWwYgtAtATktfY1MytviHBUzeJGhgY4BX6qT0G\nNZmiQHxD70NgZjqm4JiLHKcuXMGla9fh6+mO5PRs9PT2GXTcW3uPIC2vVO92\nS0sL2NnbGXQuapGh7lljYmIiiFKIsosXJeWVOHTywqT62rlL1wwXI/t6MKSa\nKEauj4+Ft6cHSCj1YcRpZmAFvifv3oKIIG+92ymKp6JCzjmgwOKDsMrOEN4e\nbjx7Qx+uZZfiz9/mwNHZBWtWhU56rtq6Brz0l1O4Z40ffvDwdrS2taOXcUY/\nX2/Y29nyDyE4wNfg+/Py0B8YkJ2Th5zqNhxKysIffH3Yvu7ihQqOuTxgZWUJ\nd1dnvdtNzGQwMbdGd+/UBhtTxgUdrGSwthxx5lNSNX3mC75e7qhoVaBmwAat\n7V1696uorsNr7x9ER2eXeOELDGH8mWOQuyErrwib1sahvb0dzk7OMDKeev0b\nUg7AxFSGgcFBKJVK2NjYzOt9tjCu3NzajojgAL33V9fYjN9+eBivvvgIXJxn\nNkUup2bDwc4G0eFBOHs1g9uidm6MFxNlcqy8yB8yoIBpbBsS4mZ0PLkUzM1l\nbILptnb29fejtKIasavCZnT+cnklI+5urI6JntHxZRWVfHFYExs1Ydvxi6nw\ncXdCXESwwefr7+uFhaWV3uedCqevpMPZwQ7xUaFoaqGpZgQ3F8EHpiLMFadj\nWlqYz9iJTnGaB46dwn27tsLRwV6vUWWmREkICvCf1fP5eHvqNuhIw8jMK4SH\n84bpjZfV7DJVdm9O4AEPvT09jCCdl8w8IZ/xMBtHG5tbkyC+LDkmOcmHVEPc\nJTAmKrJBJlP/bKEYGODuAuIg2XkFjBAtEBIUeEuek65PIqYu4w2JxMS5V4UF\n8XtVqlQoKi5FdGT4mG9zaEgF5eAA44jzO/n++8PPkVXehD/98vuwtVkalRAy\nsvPR29eP2zYk3BKOuSyNP41MNyoqLbspjikUuHY9fU7OTdkWarEuNDgQfj7e\nhi0WjFAysnJndW16jsJS+VgJTD8fL7i7uuD0xavILSzRJsyBQVTVN47FF5iZ\nmiJ6VYRWwMGJSzfwwzc/5+LqfGL7ujg8vH01VwGWCuJjV+G29bdOF162OiYR\n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\n","encoding":"base64"}},"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/2647924","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,"name":"Mike Bostock","company":"@observablehq ","blog":"https://observablehq.com/@mbostock","location":"San Francisco, CA","email":"mike@ocks.org","hireable":null,"bio":"Building a better computational medium. Co-founder @observablehq. Creator @d3. Former @nytgraphics. Pronounced BOSS-tock.","twitter_username":"mbostock","public_repos":88,"public_gists":1043,"followers":23374,"following":0,"created_at":"2010-03-25T22:02:56Z","updated_at":"2026-04-10T07:01:19Z"},"id":"2647924","created_at":"2012-05-09T18:47:40Z","updated_at":"2024-06-14T10:45:42Z"},{"url":"https://api.github.com/gists/3049539","user":{"login":"javisantana","id":30147,"node_id":"MDQ6VXNlcjMwMTQ3","avatar_url":"https://avatars.githubusercontent.com/u/30147?v=4","gravatar_id":"","url":"https://api.github.com/users/javisantana","html_url":"https://github.com/javisantana","followers_url":"https://api.github.com/users/javisantana/followers","following_url":"https://api.github.com/users/javisantana/following{/other_user}","gists_url":"https://api.github.com/users/javisantana/gists{/gist_id}","starred_url":"https://api.github.com/users/javisantana/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javisantana/subscriptions","organizations_url":"https://api.github.com/users/javisantana/orgs","repos_url":"https://api.github.com/users/javisantana/repos","events_url":"https://api.github.com/users/javisantana/events{/privacy}","received_events_url":"https://api.github.com/users/javisantana/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"javi santana","company":null,"blog":"http://javisantana.com","location":"Madrid","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":96,"public_gists":137,"followers":326,"following":78,"created_at":"2008-10-21T14:09:08Z","updated_at":"2025-09-03T09:54:24Z"},"id":"3049539","created_at":"2012-07-04T21:11:37Z","updated_at":"2015-10-06T20:37:58Z"},{"url":"https://api.github.com/gists/df21f0071e5ee001b2894e81569efe69","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-08T14:08:11Z"},"id":"df21f0071e5ee001b2894e81569efe69","created_at":"2017-12-01T11:04:58Z","updated_at":"2017-12-01T11:06:05Z"},{"url":"https://api.github.com/gists/f84b9c1efd8c3a7256c0e20665900926","user":{"login":"steveharoz","id":2257540,"node_id":"MDQ6VXNlcjIyNTc1NDA=","avatar_url":"https://avatars.githubusercontent.com/u/2257540?v=4","gravatar_id":"","url":"https://api.github.com/users/steveharoz","html_url":"https://github.com/steveharoz","followers_url":"https://api.github.com/users/steveharoz/followers","following_url":"https://api.github.com/users/steveharoz/following{/other_user}","gists_url":"https://api.github.com/users/steveharoz/gists{/gist_id}","starred_url":"https://api.github.com/users/steveharoz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveharoz/subscriptions","organizations_url":"https://api.github.com/users/steveharoz/orgs","repos_url":"https://api.github.com/users/steveharoz/repos","events_url":"https://api.github.com/users/steveharoz/events{/privacy}","received_events_url":"https://api.github.com/users/steveharoz/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Steve Haroz","company":null,"blog":"http://steveharoz.com","location":null,"email":null,"hireable":true,"bio":null,"twitter_username":null,"public_repos":57,"public_gists":85,"followers":36,"following":3,"created_at":"2012-08-31T22:53:14Z","updated_at":"2025-11-06T04:13:19Z"},"id":"f84b9c1efd8c3a7256c0e20665900926","created_at":"2018-11-28T12:34:16Z","updated_at":"2018-11-28T12:34:16Z"}],"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":"25bd721ada2ce80188bf6981435bcaacb882e108","committed_at":"2016-02-09T01:18:39Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/2647922/25bd721ada2ce80188bf6981435bcaacb882e108"},{"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":"570aac9862b15a29819a6ec267efbdca93cba8cd","committed_at":"2015-10-31T00:44:37Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/2647922/570aac9862b15a29819a6ec267efbdca93cba8cd"},{"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":"9e3815623015a7943182a5278ffdfdb2c8b72e74","committed_at":"2015-06-11T16:06:06Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/2647922/9e3815623015a7943182a5278ffdfdb2c8b72e74"},{"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":"b10095503e867f400140caba6ff20ef5e3eeeac2","committed_at":"2012-10-12T03:52:27Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/2647922/b10095503e867f400140caba6ff20ef5e3eeeac2"},{"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":"31c33c5a4817d860c84ebb4e77f5bbffbb150c28","committed_at":"2012-05-09T18:48:36Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/2647922/31c33c5a4817d860c84ebb4e77f5bbffbb150c28"},{"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/2647922/8dc705bbf0b566d253aa717540c68690d0e7cc09"}],"truncated":false}