{"action":"created","issue":{"url":"https://api.github.com/repos/almende/vis/issues/968","labels_url":"https://api.github.com/repos/almende/vis/issues/968/labels{/name}","comments_url":"https://api.github.com/repos/almende/vis/issues/968/comments","events_url":"https://api.github.com/repos/almende/vis/issues/968/events","html_url":"https://github.com/almende/vis/issues/968","id":87414211,"number":968,"title":"Tangled support nodes","user":{"login":"felixhayashi","id":4307137,"avatar_url":"https://avatars.githubusercontent.com/u/4307137?v=3","gravatar_id":"","url":"https://api.github.com/users/felixhayashi","html_url":"https://github.com/felixhayashi","followers_url":"https://api.github.com/users/felixhayashi/followers","following_url":"https://api.github.com/users/felixhayashi/following{/other_user}","gists_url":"https://api.github.com/users/felixhayashi/gists{/gist_id}","starred_url":"https://api.github.com/users/felixhayashi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/felixhayashi/subscriptions","organizations_url":"https://api.github.com/users/felixhayashi/orgs","repos_url":"https://api.github.com/users/felixhayashi/repos","events_url":"https://api.github.com/users/felixhayashi/events{/privacy}","received_events_url":"https://api.github.com/users/felixhayashi/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-06-11T16:59:12Z","updated_at":"2015-06-11T20:29:00Z","closed_at":"2015-06-11T17:30:21Z","body":"Hi,\r\n\r\nit is great that vis comes with a dynamic edge mode where invisible support-nodes are added to ensure the edges move away from obstacles (as nicely demonstrated in the smooth curves example http://visjs.org/examples/network/edgeStyles/smooth.html).\r\n\r\nThe problem is that the support-nodes often become interlocked:\r\n\r\n![selection_357](https://cloud.githubusercontent.com/assets/4307137/8112692/d1e92e6a-1069-11e5-8790-e3f4ac61d69a.png)\r\n\r\nWhere it should look like this.\r\n\r\n![selection_358](https://cloud.githubusercontent.com/assets/4307137/8112696/d7265be6-1069-11e5-905f-c5e9a01edbcc.png)\r\n\r\nIs there a way to (partially) avoid this?\r\n\r\nThanks\r\n-Felix\r\n"},"comment":{"url":"https://api.github.com/repos/almende/vis/issues/comments/111269556","html_url":"https://github.com/almende/vis/issues/968#issuecomment-111269556","issue_url":"https://api.github.com/repos/almende/vis/issues/968","id":111269556,"user":{"login":"AlexDM0","id":5363277,"avatar_url":"https://avatars.githubusercontent.com/u/5363277?v=3","gravatar_id":"","url":"https://api.github.com/users/AlexDM0","html_url":"https://github.com/AlexDM0","followers_url":"https://api.github.com/users/AlexDM0/followers","following_url":"https://api.github.com/users/AlexDM0/following{/other_user}","gists_url":"https://api.github.com/users/AlexDM0/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexDM0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexDM0/subscriptions","organizations_url":"https://api.github.com/users/AlexDM0/orgs","repos_url":"https://api.github.com/users/AlexDM0/repos","events_url":"https://api.github.com/users/AlexDM0/events{/privacy}","received_events_url":"https://api.github.com/users/AlexDM0/received_events","type":"User","site_admin":false},"created_at":"2015-06-11T20:29:00Z","updated_at":"2015-06-11T20:29:00Z","body":"The physics simulation is deterministic at the moment, but it is determined by the randomSeed. \n\nThis does not help the Felix but you are right. The cause is the initialization. The random\ninitialization is something I want to improve in the future but that's a lot of work. You could also initialize with dynamic edges off and on stabilisation turn them on and stabilize again. \n\nThe algorithm you propose would be close to O(N^2) for edges so I'm not sure that would be feasible. You could limit it to edges from the same node but there will still be edge cases. Even then it is very expensive. We could implement a stabilization that will enable dynamic smooth edges halfway to improve this though?\n\nRegards\n\n\n\n> On 11 jun. 2015, at 20:55, Felix Küppers <notifications@github.com> wrote:\n> \n> Hi @josdejong\n> \n> Thanks for your reply :) I think making it deterministic doesn't work in my case because nodes are added and removed dynamically so I cannot \"plan\" the layout beforehand :(\n> \n> I thought about an algorithm that checks in which way support-nodes are tangled and whether the respective endpoints of the edges are displayed in the opposite way and in this case simply switch support-node positions to loosen the \"knot\". But this is just an idea which might not really work...\n> \n> In any case, I still hope this will somehow get optimized in the future because for dynamically assembled graphs with labels and support nodes it happens quite often. But I completely understand that it is not possible at the moment and I respect the workload you guys have to deal with!\n> \n> -Felix\n> \n> —\n> Reply to this email directly or view it on GitHub.\n> \n"}}