{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/core-gd-a-hierarchical-framework-for-scalable","title":"CoRe-GD: A Hierarchical Framework for Scalable Graph Visualization with GNNs","arxiv_id":"2402.06706","date":"2024-02-09","proceeding":null,"authors":["Florian Grötschla","Joël Mathys","Robert Veres","Roger Wattenhofer"],"abstract":"Graph Visualization, also known as Graph Drawing, aims to find geometric embeddings of graphs that optimize certain criteria. Stress is a widely used metric; stress is minimized when every pair of nodes is positioned at their shortest path distance. However, stress optimization presents computational challenges due to its inherent complexity and is usually solved using heuristics in practice. We introduce a scalable Graph Neural Network (GNN) based Graph Drawing framework with sub-quadratic runtime that can learn to optimize stress. Inspired by classical stress optimization techniques and force-directed layout algorithms, we create a coarsening hierarchy for the input graph. Beginning at the coarsest level, we iteratively refine and un-coarsen the layout, until we generate an embedding for the original graph. To enhance information propagation within the network, we propose a novel positional rewiring technique based on intermediate node positions. Our empirical evaluation demonstrates that the framework achieves state-of-the-art performance while remaining scalable.","url_abs":"https://arxiv.org/abs/2402.06706v1","url_pdf":"https://arxiv.org/pdf/2402.06706v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"core-gd-a-hierarchical-framework-for-scalable","repo_url":"https://github.com/floriangroetschla/core-gd","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"}],"methods":[{"method_slug":"graph-neural-network","method_name":"Graph Neural Network"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.06706","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.06706"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/floriangroetschla/core-gd","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":7,"unverified":3},"by_repo_kind":{"official":{"samples":10,"ran":7,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"98ee59359a05002e","entry":"add_node_attr","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/network/preprocessing.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/network/preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"98ee59359a05002e"}},{"code_sha256_prefix":"f68262d93ce0d8d1","entry":"convert_for_stress","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/datasets/transforms.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/datasets/transforms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f68262d93ce0d8d1"}},{"code_sha256_prefix":"96c3a45691a1a48d","entry":"filter_connected","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/datasets/transforms.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/datasets/transforms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"96c3a45691a1a48d"}},{"code_sha256_prefix":"011508da9211511d","entry":"get_full_edges","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/network/losses.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/network/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"011508da9211511d"}},{"code_sha256_prefix":"4d17dbc0ea6b348e","entry":"get_mtx_graphs","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/datasets/datasets.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/datasets/datasets.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4d17dbc0ea6b348e"}},{"code_sha256_prefix":"c6b017b6b4816d2c","entry":"random_delaunay_graph","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/datasets/datasets.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/datasets/datasets.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c6b017b6b4816d2c"}},{"code_sha256_prefix":"0a4ee371c1593a1a","entry":"triplet_to_edge_index","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/network/model.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/network/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0a4ee371c1593a1a"}},{"code_sha256_prefix":"6027bed0a4dd101f","entry":"compute_positional_encodings","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/network/preprocessing.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/network/preprocessing.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6027bed0a4dd101f"}},{"code_sha256_prefix":"21b9c8c049b80480","entry":"go_to_coarser_graph","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"runtime_comparison.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/runtime_comparison.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"21b9c8c049b80480"}},{"code_sha256_prefix":"c4336565afb22bf2","entry":"pmds_layout","repo":"floriangroetschla/core-gd","repo_kind":"official","path":"neuraldrawer/datasets/transforms.py","file_url":"https://github.com/floriangroetschla/core-gd/blob/HEAD/neuraldrawer/datasets/transforms.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c4336565afb22bf2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}