{"url":"https://api.github.com/gists/1021841","forks_url":"https://api.github.com/gists/1021841/forks","commits_url":"https://api.github.com/gists/1021841/commits","id":"1021841","node_id":"MDQ6R2lzdDEwMjE4NDE=","git_pull_url":"https://gist.github.com/1021841.git","git_push_url":"https://gist.github.com/1021841.git","html_url":"https://gist.github.com/1021841","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/1021841/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n"},"README.md":{"filename":"README.md","type":"text/plain","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/1021841/raw/dd9446e24a83c1e658508b7f5f02b2b5fc3c1425/README.md","size":582,"truncated":false,"content":"Click to perturb or drag the nodes!\n\nThis example demonstrates the flexibility of [D3](http://d3js.org/)’s force layout. By using [position Verlet](http://en.wikipedia.org/wiki/Verlet_integration) integration, it is easy to add custom forces to a layout. In this example, the nodes are clustered around four foci using additional forces: the odd nodes are pushed down, the even nodes are pushed up, and a similar bisecting force is applied laterally. These custom forces are based purely on the index of the node, but they could just as easily be derived from properties of data!\n"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/1021841/raw/cd3a905f29d4fcc65eea147dc4920991a4ee77ba/index.html","size":1560,"truncated":false,"content":"\n\n\n