Discover and explore top open-source AI tools and projects—updated daily.
bhargavchippadaFast graph layout for network visualization
Top 86.6% on SourcePulse
Summary
This repository offers the fastest Python implementation of the ForceAtlas2 graph layout algorithm, achieving 10-100x speedups via Cython optimization. It targets engineers, researchers, and power users needing efficient, scalable network visualization for large graphs, integrating seamlessly with NetworkX, igraph, and raw matrices.
How It Works
The core is a Cython-optimized ForceAtlas2 implementation, a force-directed layout for weighted undirected graphs. It uses Barnes-Hut approximation for O(n log n) complexity on large graphs (>10,000 nodes). Key features include linLogMode for tighter community clusters and outboundAttractionDistribution to mitigate hub dominance.
Quick Start & Requirements
Install via pip install fa2. For peak performance, install Cython (pip install cython) and build from source (pip install fa2 --no-binary fa2). Requires Python 3.9+. Optional visualization (fa2[viz]) and MCP server (fa2[mcp]) packages are available. See PyPI and the linked research paper for details.
Highlighted Details
linLogMode, adjustSizes, outboundAttractionDistribution, inferSettings, and 3D layout support.Maintenance & Community
Contributions are welcome, with development guided by pytest and ruff. No specific community channels are listed. The multiThreaded computation feature is noted as needing implementation, suggesting potential future development.
Licensing & Compatibility
Licensed under GNU GPLv3, a strong copyleft license requiring derivative works to also be GPLv3. This may restrict integration into closed-source commercial products without separate licensing.
Limitations & Caveats
Requires Python 3.9+. The multiThreaded parameter is unimplemented. The GPLv3 license necessitates careful consideration for commercial use cases involving closed-source linking.
2 weeks ago
Inactive
dmlc