{"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/a-simple-pipeline-for-orthogonal-graph","title":"A Simple Pipeline for Orthogonal Graph Drawing","arxiv_id":"2309.01671","date":"2023-09-04","proceeding":null,"authors":["Tim Hegemann","Alexander Wolff"],"abstract":"Orthogonal graph drawing has many applications, e.g., for laying out UML diagrams or cableplans. In this paper, we present a new pipeline that draws multigraphs orthogonally, using few bends, few crossings, and small area. Our pipeline computes an initial graph layout, then removes overlaps between the rectangular nodes, routes the edges, orders the edges, and nudges them, that is, moves edge segments in order to balance the inter-edge distances. Our pipeline is flexible and integrates well with existing approaches. Our main contribution is (i) an effective edge-nudging algorithm that is based on linear programming, (ii) a selection of simple algorithms that together produce competitive results, and (iii) an extensive experimental comparison of our pipeline with existing approaches using standard benchmark sets and metrics.","url_abs":"https://arxiv.org/abs/2309.01671v2","url_pdf":"https://arxiv.org/pdf/2309.01671v2.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"a-simple-pipeline-for-orthogonal-graph","repo_url":"https://github.com/hegetim/wueortho","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}