v1.0.0
ForceAtlas2 v1.0.0
Major release with full feature parity to Gephi ForceAtlas2.
New Features
- N-dimensional layout —
dimparameter supports 2D, 3D, and beyond - Anti-collision —
adjustSizes=Trueprevents node overlap (Gephi ForceFactory.java parity) - Auto-tuning —
ForceAtlas2.inferSettings(G)selects parameters from graph characteristics - Edge weight processing —
normalizeEdgeWeights(min-max to [0,1]) andinvertedEdgeWeightsMode(w=1/w) - NumPy vectorized backend —
backend="vectorized"for 10-16x speedup without Cython - Store positions —
store_pos_assaves positions as node attributes in NetworkX/igraph - Node sizes —
size_attrreads sizes from graph attributes for anti-collision - Dual Cython architecture — Node2D (scalar C fields) + NodeND (list fields) for full 2D performance parity with v0.9.0
Bug Fixes
- Anti-collision division-by-zero when nodes exactly touch (distance=0)
- Coincident nodes producing NaN in vectorized repulsion
- float32 precision loss in NetworkX sparse conversion
- Suppress spurious RuntimeWarning in vectorized gravity for origin nodes
Quality
- 190 unit/integration tests, 100% coverage
- 8 benchmarks
- All force formulas verified against Gephi Java source and the original paper
- MkDocs documentation site
Install
pip install fa2==1.0.0For Cython speedup:
pip install cython
pip install fa2==1.0.0 --no-binary fa2Full Changelog: v0.9.0...v1.0.0