{"url":"https://api.github.com/gists/4557698","forks_url":"https://api.github.com/gists/4557698/forks","commits_url":"https://api.github.com/gists/4557698/commits","id":"4557698","node_id":"MDQ6R2lzdDQ1NTc2OTg=","git_pull_url":"https://gist.github.com/4557698.git","git_push_url":"https://gist.github.com/4557698.git","html_url":"https://gist.github.com/mbostock/4557698","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/4557698/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/4557698/raw/430ec11cae6583bee8f00336e4247718f21366e6/README.md","size":400,"truncated":false,"content":"This example demonstrates a simple method of hand-tweaking a [force-directed layout](/4062045). Using d3.behavior.drag, the nodes in this network are made draggable; dragging updates the `x` and `y` properties of each node. The resulting graph could then be saved back to a JSON file using [JSON.stringify](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify).","encoding":"utf-8"},"graph.json":{"filename":"graph.json","type":"application/json","language":"JSON","raw_url":"https://gist.githubusercontent.com/mbostock/4557698/raw/8a96fb604748723904a6c02a56abcc7db8c3273d/graph.json","size":7982,"truncated":false,"content":"{\"nodes\":[{\"x\":444,\"y\":275},{\"x\":378,\"y\":324},{\"x\":478,\"y\":278},{\"x\":471,\"y\":256},{\"x\":382,\"y\":269},{\"x\":371,\"y\":247},{\"x\":359,\"y\":276},{\"x\":364,\"y\":302},{\"x\":400,\"y\":330},{\"x\":388,\"y\":298},{\"x\":524,\"y\":296},{\"x\":570,\"y\":243},{\"x\":552,\"y\":159},{\"x\":502,\"y\":287},{\"x\":511,\"y\":313},{\"x\":513,\"y\":265},{\"x\":602,\"y\":132},{\"x\":610,\"y\":90},{\"x\":592,\"y\":91},{\"x\":575,\"y\":89},{\"x\":607,\"y\":73},{\"x\":591,\"y\":68},{\"x\":574,\"y\":73},{\"x\":589,\"y\":149},{\"x\":620,\"y\":205},{\"x\":621,\"y\":230},{\"x\":589,\"y\":234},{\"x\":602,\"y\":223},{\"x\":548,\"y\":188},{\"x\":532,\"y\":196},{\"x\":548,\"y\":114},{\"x\":575,\"y\":174},{\"x\":497,\"y\":250},{\"x\":576,\"y\":196},{\"x\":504,\"y\":201},{\"x\":494,\"y\":186},{\"x\":482,\"y\":199},{\"x\":505,\"y\":219},{\"x\":486,\"y\":216},{\"x\":590,\"y\":306},{\"x\":677,\"y\":169},{\"x\":657,\"y\":258},{\"x\":667,\"y\":205},{\"x\":552,\"y\":227},{\"x\":518,\"y\":173},{\"x\":473,\"y\":125},{\"x\":796,\"y\":260},{\"x\":731,\"y\":272},{\"x\":642,\"y\":288},{\"x\":576,\"y\":269},{\"x\":605,\"y\":187},{\"x\":559,\"y\":289},{\"x\":544,\"y\":356},{\"x\":505,\"y\":365},{\"x\":579,\"y\":289},{\"x\":619,\"y\":282},{\"x\":574,\"y\":329},{\"x\":664,\"y\":306},{\"x\":627,\"y\":304},{\"x\":643,\"y\":327},{\"x\":664,\"y\":348},{\"x\":665,\"y\":327},{\"x\":653,\"y\":317},{\"x\":650,\"y\":338},{\"x\":622,\"y\":321},{\"x\":633,\"y\":338},{\"x\":647,\"y\":357},{\"x\":718,\"y\":362},{\"x\":636,\"y\":240},{\"x\":640,\"y\":227},{\"x\":617,\"y\":249},{\"x\":631,\"y\":254},{\"x\":566,\"y\":213},{\"x\":713,\"y\":322},{\"x\":716,\"y\":298},{\"x\":666,\"y\":241},{\"x\":627,\"y\":355}],\"links\":[{\"source\":1,\"target\":0},{\"source\":2,\"target\":0},{\"source\":3,\"target\":0},{\"source\":3,\"target\":2},{\"source\":4,\"target\":0},{\"source\":5,\"target\":0},{\"source\":6,\"target\":0},{\"source\":7,\"target\":0},{\"source\":8,\"target\":0},{\"source\":9,\"target\":0},{\"source\":11,\"target\":10},{\"source\":11,\"target\":3},{\"source\":11,\"target\":2},{\"source\":11,\"target\":0},{\"source\":12,\"target\":11},{\"source\":13,\"target\":11},{\"source\":14,\"target\":11},{\"source\":15,\"target\":11},{\"source\":17,\"target\":16},{\"source\":18,\"target\":16},{\"source\":18,\"target\":17},{\"source\":19,\"target\":16},{\"source\":19,\"target\":17},{\"source\":19,\"target\":18},{\"source\":20,\"target\":16},{\"source\":20,\"target\":17},{\"source\":20,\"target\":18},{\"source\":20,\"target\":19},{\"source\":21,\"target\":16},{\"source\":21,\"target\":17},{\"source\":21,\"target\":18},{\"source\":21,\"target\":19},{\"source\":21,\"target\":20},{\"source\":22,\"target\":16},{\"source\":22,\"target\":17},{\"source\":22,\"target\":18},{\"source\":22,\"target\":19},{\"source\":22,\"target\":20},{\"source\":22,\"target\":21},{\"source\":23,\"target\":16},{\"source\":23,\"target\":17},{\"source\":23,\"target\":18},{\"source\":23,\"target\":19},{\"source\":23,\"target\":20},{\"source\":23,\"target\":21},{\"source\":23,\"target\":22},{\"source\":23,\"target\":12},{\"source\":23,\"target\":11},{\"source\":24,\"target\":23},{\"source\":24,\"target\":11},{\"source\":25,\"target\":24},{\"source\":25,\"target\":23},{\"source\":25,\"target\":11},{\"source\":26,\"target\":24},{\"source\":26,\"target\":11},{\"source\":26,\"target\":16},{\"source\":26,\"target\":25},{\"source\":27,\"target\":11},{\"source\":27,\"target\":23},{\"source\":27,\"target\":25},{\"source\":27,\"target\":24},{\"source\":27,\"target\":26},{\"source\":28,\"target\":11},{\"source\":28,\"target\":27},{\"source\":29,\"target\":23},{\"source\":29,\"target\":27},{\"source\":29,\"target\":11},{\"source\":30,\"target\":23},{\"source\":31,\"target\":30},{\"source\":31,\"target\":11},{\"source\":31,\"target\":23},{\"source\":31,\"target\":27},{\"source\":32,\"target\":11},{\"source\":33,\"target\":11},{\"source\":33,\"target\":27},{\"source\":34,\"target\":11},{\"source\":34,\"target\":29},{\"source\":35,\"target\":11},{\"source\":35,\"target\":34},{\"source\":35,\"target\":29},{\"source\":36,\"target\":34},{\"source\":36,\"target\":35},{\"source\":36,\"target\":11},{\"source\":36,\"target\":29},{\"source\":37,\"target\":34},{\"source\":37,\"target\":35},{\"source\":37,\"target\":36},{\"source\":37,\"target\":11},{\"source\":37,\"target\":29},{\"source\":38,\"target\":34},{\"source\":38,\"target\":35},{\"source\":38,\"target\":36},{\"source\":38,\"target\":37},{\"source\":38,\"target\":11},{\"source\":38,\"target\":29},{\"source\":39,\"target\":25},{\"source\":40,\"target\":25},{\"source\":41,\"target\":24},{\"source\":41,\"target\":25},{\"source\":42,\"target\":41},{\"source\":42,\"target\":25},{\"source\":42,\"target\":24},{\"source\":43,\"target\":11},{\"source\":43,\"target\":26},{\"source\":43,\"target\":27},{\"source\":44,\"target\":28},{\"source\":44,\"target\":11},{\"source\":45,\"target\":28},{\"source\":47,\"target\":46},{\"source\":48,\"target\":47},{\"source\":48,\"target\":25},{\"source\":48,\"target\":27},{\"source\":48,\"target\":11},{\"source\":49,\"target\":26},{\"source\":49,\"target\":11},{\"source\":50,\"target\":49},{\"source\":50,\"target\":24},{\"source\":51,\"target\":49},{\"source\":51,\"target\":26},{\"source\":51,\"target\":11},{\"source\":52,\"target\":51},{\"source\":52,\"target\":39},{\"source\":53,\"target\":51},{\"source\":54,\"target\":51},{\"source\":54,\"target\":49},{\"source\":54,\"target\":26},{\"source\":55,\"target\":51},{\"source\":55,\"target\":49},{\"source\":55,\"target\":39},{\"source\":55,\"target\":54},{\"source\":55,\"target\":26},{\"source\":55,\"target\":11},{\"source\":55,\"target\":16},{\"source\":55,\"target\":25},{\"source\":55,\"target\":41},{\"source\":55,\"target\":48},{\"source\":56,\"target\":49},{\"source\":56,\"target\":55},{\"source\":57,\"target\":55},{\"source\":57,\"target\":41},{\"source\":57,\"target\":48},{\"source\":58,\"target\":55},{\"source\":58,\"target\":48},{\"source\":58,\"target\":27},{\"source\":58,\"target\":57},{\"source\":58,\"target\":11},{\"source\":59,\"target\":58},{\"source\":59,\"target\":55},{\"source\":59,\"target\":48},{\"source\":59,\"target\":57},{\"source\":60,\"target\":48},{\"source\":60,\"target\":58},{\"source\":60,\"target\":59},{\"source\":61,\"target\":48},{\"source\":61,\"target\":58},{\"source\":61,\"target\":60},{\"source\":61,\"target\":59},{\"source\":61,\"target\":57},{\"source\":61,\"target\":55},{\"source\":62,\"target\":55},{\"source\":62,\"target\":58},{\"source\":62,\"target\":59},{\"source\":62,\"target\":48},{\"source\":62,\"target\":57},{\"source\":62,\"target\":41},{\"source\":62,\"target\":61},{\"source\":62,\"target\":60},{\"source\":63,\"target\":59},{\"source\":63,\"target\":48},{\"source\":63,\"target\":62},{\"source\":63,\"target\":57},{\"source\":63,\"target\":58},{\"source\":63,\"target\":61},{\"source\":63,\"target\":60},{\"source\":63,\"target\":55},{\"source\":64,\"target\":55},{\"source\":64,\"target\":62},{\"source\":64,\"target\":48},{\"source\":64,\"target\":63},{\"source\":64,\"target\":58},{\"source\":64,\"target\":61},{\"source\":64,\"target\":60},{\"source\":64,\"target\":59},{\"source\":64,\"target\":57},{\"source\":64,\"target\":11},{\"source\":65,\"target\":63},{\"source\":65,\"target\":64},{\"source\":65,\"target\":48},{\"source\":65,\"target\":62},{\"source\":65,\"target\":58},{\"source\":65,\"target\":61},{\"source\":65,\"target\":60},{\"source\":65,\"target\":59},{\"source\":65,\"target\":57},{\"source\":65,\"target\":55},{\"source\":66,\"target\":64},{\"source\":66,\"target\":58},{\"source\":66,\"target\":59},{\"source\":66,\"target\":62},{\"source\":66,\"target\":65},{\"source\":66,\"target\":48},{\"source\":66,\"target\":63},{\"source\":66,\"target\":61},{\"source\":66,\"target\":60},{\"source\":67,\"target\":57},{\"source\":68,\"target\":25},{\"source\":68,\"target\":11},{\"source\":68,\"target\":24},{\"source\":68,\"target\":27},{\"source\":68,\"target\":48},{\"source\":68,\"target\":41},{\"source\":69,\"target\":25},{\"source\":69,\"target\":68},{\"source\":69,\"target\":11},{\"source\":69,\"target\":24},{\"source\":69,\"target\":27},{\"source\":69,\"target\":48},{\"source\":69,\"target\":41},{\"source\":70,\"target\":25},{\"source\":70,\"target\":69},{\"source\":70,\"target\":68},{\"source\":70,\"target\":11},{\"source\":70,\"target\":24},{\"source\":70,\"target\":27},{\"source\":70,\"target\":41},{\"source\":70,\"target\":58},{\"source\":71,\"target\":27},{\"source\":71,\"target\":69},{\"source\":71,\"target\":68},{\"source\":71,\"target\":70},{\"source\":71,\"target\":11},{\"source\":71,\"target\":48},{\"source\":71,\"target\":41},{\"source\":71,\"target\":25},{\"source\":72,\"target\":26},{\"source\":72,\"target\":27},{\"source\":72,\"target\":11},{\"source\":73,\"target\":48},{\"source\":74,\"target\":48},{\"source\":74,\"target\":73},{\"source\":75,\"target\":69},{\"source\":75,\"target\":68},{\"source\":75,\"target\":25},{\"source\":75,\"target\":48},{\"source\":75,\"target\":41},{\"source\":75,\"target\":70},{\"source\":75,\"target\":71},{\"source\":76,\"target\":64},{\"source\":76,\"target\":65},{\"source\":76,\"target\":66},{\"source\":76,\"target\":63},{\"source\":76,\"target\":62},{\"source\":76,\"target\":48},{\"source\":76,\"target\":58}]}","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/4557698/raw/3b797f107707bad1afeb95aa918b73da602a95b2/index.html","size":1491,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<style>\n\n.node {\n  stroke: #fff;\n  stroke-width: 1.5px;\n}\n\n.link {\n  stroke: #999;\n}\n\n</style>\n<body>\n<script src=\"https://d3js.org/d3.v4.min.js\"></script>\n<script>\n\nvar width = 960,\n    height = 500;\n\nvar svg = d3.select(\"body\").append(\"svg\")\n    .attr(\"width\", width)\n    .attr(\"height\", height);\n\nd3.json(\"graph.json\", function(error, graph) {\n  if (error) throw error;\n\n  graph.links.forEach(function(d) {\n    d.source = graph.nodes[d.source];\n    d.target = graph.nodes[d.target];\n  });\n\n  var link = svg.append(\"g\")\n      .attr(\"class\", \"link\")\n    .selectAll(\"line\")\n    .data(graph.links)\n    .enter().append(\"line\")\n      .attr(\"x1\", function(d) { return d.source.x; })\n      .attr(\"y1\", function(d) { return d.source.y; })\n      .attr(\"x2\", function(d) { return d.target.x; })\n      .attr(\"y2\", function(d) { return d.target.y; });\n\n  var node = svg.append(\"g\")\n      .attr(\"class\", \"node\")\n    .selectAll(\"circle\")\n    .data(graph.nodes)\n    .enter().append(\"circle\")\n      .attr(\"r\", 4)\n      .attr(\"cx\", function(d) { return d.x; })\n      .attr(\"cy\", function(d) { return d.y; })\n      .call(d3.drag().on(\"drag\", dragged));\n\n  function dragged(d) {\n    d.x = d3.event.x, d.y = d3.event.y;\n    d3.select(this).attr(\"cx\", d.x).attr(\"cy\", d.y);\n    link.filter(function(l) { return l.source === d; }).attr(\"x1\", d.x).attr(\"y1\", d.y);\n    link.filter(function(l) { return l.target === d; }).attr(\"x2\", d.x).attr(\"y2\", d.y);\n  }\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/4557698/raw/177725bedf609f3821a1fe22f10bc3026da11a3d/thumbnail.png","size":9836,"truncated":false,"content":"iVBORw0KGgoAAAANSUhEUgAAAOYAAAB4CAIAAABpZBnfAAAKg2lDQ1BpY20A\nAEjHlZYHUFPpFse/e9MbLSECUkLvvYP0Grp0EJWQhBBKDIHQ7Iq4gmtBRATU\nFV2qgmsBZC2IKBYWQQXsC7KoKOtiAVRU3kUe8b15s/Nmz8yZ+5szZ/7f+cqd\n+QNALmMJhamwDABpgkxRqI87IzomloF7DCBABhRgCuRZ7AyhW0hIAPjbmBpA\nupG4YzynBf5ZyHK4GWwAoBCEEzgZ7DSETyO5gS0UZQKAskLqWtmZwjmORpgm\nQgZEeG4dGm+eN8xxwjyXfOsJD/VAuBYAPJnFEvEAICGagJHF5iE6pLsImwk4\nfAEAZDTCzuwkFgdhT4SN0tJWzbEQYb2E/9Dh/ZdmgkSTxeJJeH4v3wLvyc8Q\nprJy/+Fx/P9ISxUvrKGKJDkjJcx/bj3kzHLYLK+wBU7iMgMWWJjpHrrA/Exm\nuKRH7BuxwOKUCLcFTlnlL+kXJAQFS/QzPGIXOC8pPGqBOVxPrwUWrQqV9Gdk\nhXl97/cIWuBkll/IArNE8+c1x9xUn9DvM4dI5hSkBkn2kijylvRwM77vNzMp\n3FfCyAOQ9PO9mZL9iny/66eGSDRF4lDJOXAFERJNDstTcraADwIBC7AzuTmZ\ncwN7rBLmivi8pEyGG/LquUYMpoBtYsSwMDO3BHP/0PwVvaN/+zcg+o3vtfR2\nAOwLkSLve42lCcDZZwBQp77XNN8i17sLgPO9bLEoa74291wBBhCBNKABReQF\naAI9YAwsgA1wBK7AC/iBYBAOYsAKwAZJIA2IQDZYAzaCAlAEdoG9oBwcAkdA\nLTgOToIWcA5cAlfBTdAL+sFDMARGwSswAabADARBOIgCUSFFSA3ShgwhC8gO\ncoa8oAAoFIqB4iEeJIDE0BpoM1QEFUPl0GGoDvoFOgtdgq5DfdB9aBgag95C\nn2AUTIZpsAqsA5vCdrAb7A+Hw8thHpwO58H58A64DK6Cj8HN8CX4JtwPD8Gv\n4EkUQJFQdJQ6yhhlh/JABaNiUYkoEWodqhBViqpCNaLaUF2oO6gh1DjqIxqL\npqIZaGO0I9oXHYFmo9PR69Db0eXoWnQzuhN9Bz2MnkB/xVAwyhhDjAOGiYnG\n8DDZmAJMKaYacwZzBdOPGcVMYbFYOlYXa4v1xcZgk7GrsduxB7BN2HZsH3YE\nO4nD4RRxhjgnXDCOhcvEFeD2447hLuJu40ZxH/AkvBreAu+Nj8UL8Jvwpfh6\n/AX8bfxz/AxBhqBNcCAEEziEXMJOwlFCG+EWYZQwQ5Ql6hKdiOHEZOJGYhmx\nkXiF+Ij4jkQiaZDsSUtJfNIGUhnpBOkaaZj0kSxHNiB7kOPIYvIOcg25nXyf\n/I5CoehQXCmxlEzKDkod5TLlCeWDFFXKRIopxZFaL1Uh1Sx1W+q1NEFaW9pN\neoV0nnSp9CnpW9LjMgQZHRkPGZbMOpkKmbMygzKTslRZc9lg2TTZ7bL1stdl\nX8jh5HTkvOQ4cvlyR+Quy41QUVRNqgeVTd1MPUq9Qh2lYWm6NCYtmVZEO07r\noU3Iy8lbyUfK58hXyJ+XH6Kj6Dp0Jj2VvpN+kj5A/7RIZZHbIu6ibYsaF91e\nNK2wWMFVgatQqNCk0K/wSZGh6KWYorhbsUXxsRJayUBpqVK20kGlK0rji2mL\nHRezFxcuPrn4gTKsbKAcqrxa+Yhyt/KkiqqKj4pQZb/KZZVxVbqqq2qyaonq\nBdUxNaqasxpfrUTtotpLhjzDjZHKKGN0MibUldV91cXqh9V71Gc0dDUiNDZp\nNGk81iRq2mkmapZodmhOaKlpBWqt0WrQeqBN0LbTTtLep92lPa2jqxOls1Wn\nReeFroIuUzdPt0H3kR5Fz0UvXa9K764+Vt9OP0X/gH6vAWxgbZBkUGFwyxA2\ntDHkGx4w7DPCGNkbCYyqjAaNycZuxlnGDcbDJnSTAJNNJi0mr021TGNNd5t2\nmX41szZLNTtq9tBcztzPfJN5m/lbCwMLtkWFxV1LiqW35XrLVss3VoZWXKuD\nVvesqdaB1lutO6y/2NjaiGwabcZstWzjbSttB+1odiF22+2u2WPs3e3X25+z\n/+hg45DpcNLhL0djxxTHescXS3SXcJccXTLipOHEcjrsNOTMcI53/sl5yEXd\nheVS5fLUVdOV41rt+txN3y3Z7Zjba3czd5H7GfdpDwePtR7tnihPH89Czx4v\nOa8Ir3KvJ94a3jzvBu8JH2uf1T7tvhhff9/dvoNMFSabWcec8LP1W+vX6U/2\nD/Mv938aYBAgCmgLhAP9AvcEPgrSDhIEtQSDYGbwnuDHIboh6SG/LsUuDVla\nsfRZqHnomtCuMGrYyrD6sKlw9/Cd4Q8j9CLEER2R0pFxkXWR01GeUcVRQ9Gm\n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\n8us62Lfm5ubmDRs27Nq1azqqmO0Y1sTFFsRuJUkaGBjYunXr3r17W1pa3q8Z\nRtd1GFILHZF9fX2aptXU1MAgGbhFrFq1yv5E2WyWoiifz1dCi61rwZL9HxMT\nrfDKdEzBth/dYZpmMBiEf5qmGY/HYexAJpOhaRq8hQ9lcHCwUCjs3Llz/fr1\ndXV1xWLxD3/4w8aNG9va2lKpVE1NDcdxdkKYIIhMJgPFvhOzxKUlX+wY/A+o\nup94/a5bTfLxjwLlhZBNsFda8MPIZrMOhwMeljSpEXcSdmBVVdVTp06l02kY\np/zOO+/09vamUimSJCe2f4FAoXtMkiRbxKWlVzTPE7Y3wpRfUcuy4BnKE1+U\nJMme+wL51Rs37aIodnZ2whBw0zRfeuklhFBfXx+Uoi9ZsmTSZwmHwzDaFlZ1\nJSdZbGU/iKm9nGAXM5kMtIZPfJGiKGgQuDaR+8HAY5IgdutwOKB8x+/3d3R0\n7N27d9OmTdd9FxTNQDdbyXmGWLK3CFj1Q0cDPEkGjfu1iUTitddeIwjiI+kV\n9vCf//zn+eef9/l85eXlMK4e6l95nt+9e/df//rX93t7WVlZoVCQZbn0VGth\nbhW6ro+OjoKHCmiaZlnWvn37EELxeNyyrIn/+8HAe3fu3FlXV8fzPJQZfOEL\nX2hvb4djfegeIAsNXW4lRKn9wkoQy7IIgkgmk4IgVFdXX1tRJYriwMDAJz7x\niZvY+aSyxsOHD5umuX79ejuQ/AE+MYRHNm3apGnaP/7xjymfKzNN4OXXtANi\n2rBhA8Mwr7766rVlqRzH3Zxe0Xh1mDW+ivrSl74Er9+I+OAty5cvt585WhJg\nKzvtgJ7eeOMNgiBWrVplXbNIh/vdTVu4iTucNElkToIlO98pOZVjyd4i7Nar\nmT6RkgdLFlNi4B89psTAksWUGFiymBIDSxZTYmDJYkoMLFlMiYEliykxsGQx\nJQaWLKbEwJLFlBhYspgSA0sWU2JgyWJKDCxZTImBJYspMbBkMSUGliymxMCS\nxZQYWLKYEgNLFlNiYMliSgwsWUyJgSWLKTGwZDElBpYspsTAksWUGFiymBID\nSxZTYvwfPm9idTbyA+kAAAAASUVORK5CYII=\n","encoding":"base64"}},"public":true,"created_at":"2013-01-17T17:23:01Z","updated_at":"2023-10-09T17:18:09Z","description":"Draggable Network","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/4557698/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/4560481","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":23371,"following":0,"created_at":"2010-03-25T22:02:56Z","updated_at":"2026-04-10T07:01:19Z"},"id":"4560481","created_at":"2013-01-17T22:34:26Z","updated_at":"2017-06-06T15:05:21Z"},{"url":"https://api.github.com/gists/7277861","user":{"login":"213r","id":3541582,"node_id":"MDQ6VXNlcjM1NDE1ODI=","avatar_url":"https://avatars.githubusercontent.com/u/3541582?v=4","gravatar_id":"","url":"https://api.github.com/users/213r","html_url":"https://github.com/213r","followers_url":"https://api.github.com/users/213r/followers","following_url":"https://api.github.com/users/213r/following{/other_user}","gists_url":"https://api.github.com/users/213r/gists{/gist_id}","starred_url":"https://api.github.com/users/213r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/213r/subscriptions","organizations_url":"https://api.github.com/users/213r/orgs","repos_url":"https://api.github.com/users/213r/repos","events_url":"https://api.github.com/users/213r/events{/privacy}","received_events_url":"https://api.github.com/users/213r/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Keisuke Niimi","company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":3,"public_gists":5,"followers":1,"following":0,"created_at":"2013-02-12T12:37:39Z","updated_at":"2024-11-20T05:46:55Z"},"id":"7277861","created_at":"2013-11-02T11:13:42Z","updated_at":"2015-12-27T05:59:00Z"},{"url":"https://api.github.com/gists/8730238","user":{"login":"ff6347","id":315106,"node_id":"MDQ6VXNlcjMxNTEwNg==","avatar_url":"https://avatars.githubusercontent.com/u/315106?v=4","gravatar_id":"","url":"https://api.github.com/users/ff6347","html_url":"https://github.com/ff6347","followers_url":"https://api.github.com/users/ff6347/followers","following_url":"https://api.github.com/users/ff6347/following{/other_user}","gists_url":"https://api.github.com/users/ff6347/gists{/gist_id}","starred_url":"https://api.github.com/users/ff6347/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ff6347/subscriptions","organizations_url":"https://api.github.com/users/ff6347/orgs","repos_url":"https://api.github.com/users/ff6347/repos","events_url":"https://api.github.com/users/ff6347/events{/privacy}","received_events_url":"https://api.github.com/users/ff6347/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Fabian Morón Zirfas","company":"@fh-potsdam","blog":"https://fabianmoronzirfas.me","location":"Berlin","email":null,"hireable":true,"bio":"👋🏽  I'm Fabian. I'm a creative technologist, educator and master student @fh-potsdam living in Berlin who occasionally does stuff that involves things.","twitter_username":"fmoronzirfas","public_repos":540,"public_gists":489,"followers":462,"following":654,"created_at":"2010-06-26T09:38:16Z","updated_at":"2026-03-21T14:37:40Z"},"id":"8730238","created_at":"2014-01-31T11:16:29Z","updated_at":"2015-08-29T13:55:52Z"},{"url":"https://api.github.com/gists/223ce3d7bb39b4735719","user":{"login":"hlucasfranca","id":11790275,"node_id":"MDQ6VXNlcjExNzkwMjc1","avatar_url":"https://avatars.githubusercontent.com/u/11790275?v=4","gravatar_id":"","url":"https://api.github.com/users/hlucasfranca","html_url":"https://github.com/hlucasfranca","followers_url":"https://api.github.com/users/hlucasfranca/followers","following_url":"https://api.github.com/users/hlucasfranca/following{/other_user}","gists_url":"https://api.github.com/users/hlucasfranca/gists{/gist_id}","starred_url":"https://api.github.com/users/hlucasfranca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hlucasfranca/subscriptions","organizations_url":"https://api.github.com/users/hlucasfranca/orgs","repos_url":"https://api.github.com/users/hlucasfranca/repos","events_url":"https://api.github.com/users/hlucasfranca/events{/privacy}","received_events_url":"https://api.github.com/users/hlucasfranca/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Henrique Lucas França","company":null,"blog":"https://www.linkedin.com/in/hlucasfranca/","location":"São Paulo - Brazil","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":43,"public_gists":52,"followers":58,"following":59,"created_at":"2015-04-03T20:30:38Z","updated_at":"2026-04-01T11:54:40Z"},"id":"223ce3d7bb39b4735719","created_at":"2015-10-02T17:12:58Z","updated_at":"2015-10-02T17:12:58Z"},{"url":"https://api.github.com/gists/cf4d88b1663202ff2bdb7268e8a1fb44","user":{"login":"leiyuanshuai","id":16603399,"node_id":"MDQ6VXNlcjE2NjAzMzk5","avatar_url":"https://avatars.githubusercontent.com/u/16603399?v=4","gravatar_id":"","url":"https://api.github.com/users/leiyuanshuai","html_url":"https://github.com/leiyuanshuai","followers_url":"https://api.github.com/users/leiyuanshuai/followers","following_url":"https://api.github.com/users/leiyuanshuai/following{/other_user}","gists_url":"https://api.github.com/users/leiyuanshuai/gists{/gist_id}","starred_url":"https://api.github.com/users/leiyuanshuai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leiyuanshuai/subscriptions","organizations_url":"https://api.github.com/users/leiyuanshuai/orgs","repos_url":"https://api.github.com/users/leiyuanshuai/repos","events_url":"https://api.github.com/users/leiyuanshuai/events{/privacy}","received_events_url":"https://api.github.com/users/leiyuanshuai/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"en","company":"保密","blog":"","location":"北京","email":null,"hireable":null,"bio":"前端爱好者","twitter_username":null,"public_repos":43,"public_gists":7,"followers":4,"following":11,"created_at":"2016-01-08T02:58:15Z","updated_at":"2026-04-01T10:02:41Z"},"id":"cf4d88b1663202ff2bdb7268e8a1fb44","created_at":"2020-07-23T03:59:23Z","updated_at":"2020-07-23T03:59:24Z"}],"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":"40bf468d5d114472371cfa5ce2a03214d55493cd","committed_at":"2017-06-06T15:03:06Z","change_status":{"total":23,"additions":12,"deletions":11},"url":"https://api.github.com/gists/4557698/40bf468d5d114472371cfa5ce2a03214d55493cd"},{"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":"28dabd0394505f0dd949e79724cea9c3b0fd257b","committed_at":"2016-02-09T02:09:14Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/4557698/28dabd0394505f0dd949e79724cea9c3b0fd257b"},{"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":"fe37d3b10bb77d96ba6912ce5abd32771fb3ed7b","committed_at":"2015-10-31T01:32:19Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4557698/fe37d3b10bb77d96ba6912ce5abd32771fb3ed7b"},{"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":"f017910274645ffe0d84ecee1017447722ea140e","committed_at":"2015-06-11T19:26:44Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/4557698/f017910274645ffe0d84ecee1017447722ea140e"},{"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":"8c776dc830caa4d5c7a556dba421ce0b86e54064","committed_at":"2013-01-20T03:41:41Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/4557698/8c776dc830caa4d5c7a556dba421ce0b86e54064"},{"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":"811208928be1a90a18236f9d68795ddd05ff5c4a","committed_at":"2013-01-17T17:25:30Z","change_status":{"total":10,"additions":6,"deletions":4},"url":"https://api.github.com/gists/4557698/811208928be1a90a18236f9d68795ddd05ff5c4a"},{"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":"50f1de90e2a6dd7b22c14ba4c176db1f06da9185","committed_at":"2013-01-17T17:23:01Z","change_status":{"total":61,"additions":61,"deletions":0},"url":"https://api.github.com/gists/4557698/50f1de90e2a6dd7b22c14ba4c176db1f06da9185"}],"truncated":false}