{"id":22483696,"url":"https://github.com/gverger/go-graph-layout","last_synced_at":"2025-04-07T11:07:48.729Z","repository":{"id":55833990,"uuid":"430077303","full_name":"gverger/go-graph-layout","owner":"gverger","description":"🔮 Graph Layout Algorithms in Go","archived":false,"fork":false,"pushed_at":"2025-03-24T17:16:43.000Z","size":109,"stargazers_count":89,"open_issues_count":4,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-31T09:09:25.997Z","etag":null,"topics":["go","graph","graph-visualization","svg"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gverger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-20T10:54:28.000Z","updated_at":"2025-03-24T17:15:05.000Z","dependencies_parsed_at":"2024-01-14T03:48:19.202Z","dependency_job_id":"71adc64b-623d-4a4e-95cd-36a15ebad165","html_url":"https://github.com/gverger/go-graph-layout","commit_stats":null,"previous_names":["gverger/go-graph-layout"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gverger%2Fgo-graph-layout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gverger%2Fgo-graph-layout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gverger%2Fgo-graph-layout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gverger%2Fgo-graph-layout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gverger","download_url":"https://codeload.github.com/gverger/go-graph-layout/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247640463,"owners_count":20971557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","graph","graph-visualization","svg"],"created_at":"2024-12-06T17:02:37.730Z","updated_at":"2025-04-07T11:07:48.709Z","avatar_url":"https://github.com/gverger.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"## Graph Layout Algorithms in Go\n\nThis module provides algorithms for graph visualization in native Go.\nAs of 2021-11-20, virtually all graph visualization algorithms are bindings to Graphviz dot code which is in C.\nThis module attempts to provide implementation of latest and best graph visualization algorithms from scratch in Go.\nHowever, given this is very complex task this is work in progress.\n\n## Features\n\n- [x] gonum Isomap\n- [x] gonum Eades\n- [x] Kozo Sugiyama layers strategy\n- [ ] Brandes-Köpf horizontal layers assignment [80% done]\n- [ ] Graphviz dot layers algorithm [80% done]\n- [x] Gravity force\n- [x] Spring force\n- [ ] Kozo Sugiyama Magnetic Force\n- [ ] Metro Style edges\n- [ ] Ports for edges\n- [ ] Spline edges\n- [ ] Collision avoidance (dot) edge path algorithm\n\n## Contributions\n\nYes please. These algorithms are hard. If you can, help to finish implementing any of above! \n\nIf lots of contributions, I am ok to merge this into some org!\n\n## References\n\n- [Wiki Layered Graph Drawing](https://en.wikipedia.org/wiki/Layered_graph_drawing)\n- [\"Handbook of Graph Drawing and Visualization\"](https://cs.brown.edu/people/rtamassi/gdhandbook/), Roberto Tamassia, Brown, Ch.13, 2013\n- [\"A Technique for Drawing Directed Graphs\"](https://ieeexplore.ieee.org/document/221135), Emden R. Gansner Eleftherios Koutsofios Stephen C. North Kiem-Phong Vo, AT\u0026T Bell Laboratories, 1993\n- [\"Fast and Simple Horizontal Coordinate Assignment\"](https://link.springer.com/content/pdf/10.1007/3-540-45848-4_3.pdf), U. Brandes, Boris Köpf, 2002\n- \"Methods for visual understanding of hierarchical system structures\", Sugiyama, Kozo; Tagawa, Shôjirô; Toda, Mitsuhiko, 1981\n- \"Graph Drawing by the Magnetic Spring Model\", Kozo Sugiyama, 1995\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgverger%2Fgo-graph-layout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgverger%2Fgo-graph-layout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgverger%2Fgo-graph-layout/lists"}