Roadmap & Vision
This page outlines the vision and planned development for py3plex. For the latest updates, see GitHub Releases and GitHub Issues.
Long-Term Vision
py3plex aims to be the go-to Python library for multilayer network analysis with a focus on:
Research Goals:
Implementing state-of-the-art multilayer network algorithms from research literature
Providing a flexible framework for developing new multilayer methods
Supporting reproducible research with comprehensive documentation and examples
Production Use Cases:
Enabling analysis of real-world multilayer networks at scale
Providing robust APIs for integration into production systems
Supporting diverse data formats and interoperability with existing tools
Community Building:
Growing an active community of researchers and practitioners
Facilitating collaboration through open-source development
Providing educational resources and workshops
Current Focus (v1.0+)
Established Features:
Core multilayer network data structures and operations
DSL (Domain-Specific Language) for declarative network queries
Community detection algorithms (Louvain, Infomap, multilayer variants)
Dynamics simulation (SIR, SIS, random walks, custom models)
Network embeddings (Node2Vec, DeepWalk)
Centrality measures (degree, betweenness, PageRank, multilayer variants)
First-class uncertainty quantification
Visualization tools (matplotlib, plotly, interactive)
CLI tools for common operations
Web GUI for interactive exploration
Planned Enhancements
Priority areas for future development:
Near Term (Next Release)
Performance optimizations for large-scale networks (>1M nodes)
Additional temporal network analysis tools
Extended DSL capabilities (aggregation, window functions)
More community detection algorithms
Enhanced visualization options (layer-specific layouts)
Medium Term (1-2 Releases)
GPU acceleration for select algorithms
Streaming network analysis capabilities
Advanced temporal dynamics models
Integration with graph database systems
Additional export formats (Neo4j, GraphML extensions)
More comprehensive benchmarking suite
Longer Term (Future Releases)
Distributed computing support (Dask, Spark integration)
Advanced machine learning on multilayer networks
Causal inference tools for multilayer systems
Time-varying parameter estimation
Additional domain-specific toolkits (bioinformatics, social, transport)
Note: Feature priorities may shift based on community feedback and research developments. Track specific feature requests and vote on priorities through GitHub Issues.
Research Directions
py3plex development is informed by ongoing research in multilayer network science:
Current Research Areas:
Multilayer centrality: Novel measures that account for layer dependencies
Temporal dynamics: Time-varying multilayer processes and intervention modeling
Uncertainty quantification: Principled handling of measurement error and structural uncertainty
Scalability: Algorithms that scale to networks with millions of nodes and layers
Domain applications: Collaborations in biology, social science, transportation, finance
Contributing Research:
If you’re developing new multilayer network methods, we welcome contributions! See Contributing to py3plex for guidelines on:
Implementing new algorithms
Adding test cases and benchmarks
Contributing examples and documentation
Citing your research in the codebase
Community Requests
The following features have been requested by the community. For the full list and to vote on priorities, see GitHub Issues.
High-Priority Requests:
Support for very large networks (>10M nodes) - In progress
Additional temporal network analysis tools - Planned
More extensive documentation and tutorials - Ongoing
Enhanced performance for centrality computations - Planned
Integration with popular graph databases - Under consideration
Vote on Features
Help prioritize development by:
Commenting on existing feature request issues with your use case
Opening new issues for feature requests (use the “enhancement” label)
Using 👍 reactions to vote on priorities
Contributing implementations for features you need
Contributing to Development
Want to help implement these features? We welcome contributions of all kinds:
Code contributions: Implement new algorithms, fix bugs, improve performance
Documentation: Write tutorials, improve API docs, add examples
Testing: Add test cases, report bugs, validate algorithms
Community: Answer questions, review PRs, organize workshops
See Contributing to py3plex for detailed guidelines.
Release Cycle
py3plex follows semantic versioning (MAJOR.MINOR.PATCH):
Version Scheme:
Major releases (x.0.0): Breaking API changes, major new features
Minor releases (1.x.0): New features, backward-compatible changes
Patch releases (1.0.x): Bug fixes, documentation updates
Development Process:
Main branch: Stable, production-ready code
Development branches: Feature development and testing
Release candidates: Beta testing before major releases
Documentation: Updated with each release
Release Timeline:
Major releases: ~1-2 per year
Minor releases: As features are completed (typically quarterly)
Patch releases: As needed for bug fixes
See Changelog for release history.
Staying Updated
GitHub Releases: https://github.com/SkBlaz/py3plex/releases
Issue Tracker: https://github.com/SkBlaz/py3plex/issues
Discussions: https://github.com/SkBlaz/py3plex/discussions
Next Steps
Current features: 10-Minute Tutorial
Contribute: Contributing to py3plex
Report issues: https://github.com/SkBlaz/py3plex/issues