Algorithms for Bundling Edges in Networks and Visualizing Flow and Metro Maps
Overview
Implements several algorithms for bundling edges in networks and flow and metro map layouts. This includes force directed edge bundling doi:10.1111/j.1467-8659.2009.01450.x, a flow algorithm based on Steiner treesdoi:10.1080/15230406.2018.1437359 and a multicriteria optimization method for metro map layouts doi:10.1109/TVCG.2010.24.
- added
edge_bundle(), a single entry point that dispatches to any bundler viatype = c("force", "divided", "stub", "path", "hammer", "mingle") - switched the test suite to testthat edition 3 and added correctness tests for every exported function
- modernised all
igraphcalls to the 2.x API, removing deprecation warnings edge_bundle_force()now also accepts a two-column edgelist matrix- fixed
edge_bundle_stub(): the angular grouping was broken (wrong circular-gap handling and a bundle-size cap that summed cluster ids instead of counting edges) and vertical edges could produceNaN. Bundling output changes as a result - fixed
edge_bundle_path(): the path-length used in the distortion test was computed along the wrong vertices, so edges were essentially never routed. Bundling output changes as a result - added divided edge bundling for directed graphs via
edge_bundle_force(directed = TRUE)(Selassie et al. 2011): edges running in opposite directions are kept in separate lanes edge_bundle_hammer()is now a native C++ implementation of KDE edge bundling (Hurter et al. 2012) and no longer depends on Python/reticulate/datashader.reticulatewas dropped from Imports andinstall_bundle_py()was removed. Bundling output differs from the datashader-based version- added
edge_bundle_mingle(), multilevel agglomerative edge bundling (Gansner et al. 2011); the kNN proximity graph is built with a bundled kd-tree (nanoflann) for O(E log E) scaling, with akparameter for the number of merge candidates per edge metro_multicriteria()is deprecated in favour ofgraphlayouts::layout_as_metromap()and will be removed in a future release- added
flow_tree(), a spiral-tree flow map (Verbeek, Buchin & Speckmann 2011): planar, angle-restricted, keeps node positions fixed, and needs no dummy nodes or triangulation. It is the recommended flow map layout; thetnss_*()functions remain as an alternative.flow_tree(optimize = TRUE)additionally refines the tree (smoothness + obstacle avoidance) with join points held fixed tnss_tree():order = "weight"now orders leaves by flow magnitude (previously a no-op); fixed a bug intnss_dummies()where one diagonal corner was misplaced; removed dead code.interpmoved from Imports to Suggests (onlytnss_tree()needs it)
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK14 OK2026-04-22
- ERROR13 OK, 1 ERROR2026-04-18
- OK14 OK2026-03-10
Documentation
The repository also keeps web-only articles.
- Help pages
- 17 (1 internal)includes a package overview page
- Examples that run
- 100%11 run in a plain check
- Exported functions with examples
- 92%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 53%
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- 80
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Releases over time
Issues over time
Commits over time
12 development-tooling and community-health practices detected across 5 families in the upstream repository
Checks run against github.com/schochastics/edgebundle on 2026-10-11.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-07-24 · The repository has a site deploy workflow
pkgdown site last built 2026-07-24
Show all practicesHide 1 practice
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-07-23Named in .Rbuildignore: .claudePull request it wrote: opened by a project memberCommits: at least 16 crediting it in the message
- Claude Opus 4.816 commits · Jul 2026
Dependencies
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- 1.0.0Latest2026-07-24 · current release · diff ↗ ·
removed 1 export
install_bundle_pyadded 3 exports
edge_bundle, edge_bundle_mingle, flow_tree - RR 4.6.0 released · 2026-04-24
- RR 4.5.0 released · 2025-04-11
- RR 4.4.0 released · 2024-04-24
- 0.4.22023-12-16 · diff ↗
- RR 4.3.0 released · 2023-04-21
- 0.4.12022-11-22 · diff ↗
- 0.4.02022-07-05 · diff ↗
- RR 4.2.0 released · 2022-04-22
- 0.3.12022-01-23 · diff ↗
- 0.3.0
- 0.2.12021-08-09 · diff ↗
- 0.2.02021-08-02
- RR 4.1.0 released · 2021-05-18
Package metadata
- First published
- 2021-08-02
- Total releases
- 8 / 5 yrs
- License
- MIT + file LICENSE OSI
- Minimum R
- ≥ 3.5
- Bundled data
- 88 KB / 4 files
- Download size
- 172 KB
Cite
Cite this package
Run in R for the authors' entry:
citation("edgebundle")The package provides a citation file, so citation() returns the authors' own entry.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-19, which the citation names so these numbers can be found later. More on citing and the projects behind them.