Python library to work with complex networks
Helios Networks [WIP]
Helios is a Python library aiming to provide an easy way to visualize huge networks dynamically. Helios also provides visualizations through an interactive Stadia-like streaming system in which users can be collaboratively access (and share) visualizations created in a server or through Jupyter Notebook/Lab environments. It incorporates state-of-the-art layout algorithms and optimized rendering techniques (powered by FURY).
- Website and Documentation: https://heliosnetwork.io/
- Examples: https://heliosnetwork.io/examples_gallery/index.html
- Blog: https://heliosnetwork.io/blog.html
- Free software: MIT license
- Community: Come to chat on Discord
- Force-directed layout using octrees
- Minimum-distortion embeddings
- ForceAtlas2 using cugraph
- Interactive local and Remote rendering in Jupyter Notebooks
- WebRTC or MJPEG interactive streaming system
Use pip install pointed to this repository:
As an alternative, Helios can be installed from the source code through the following steps:
Step 1. Get the latest source by cloning this repo:
git clone https://github.com/fury-gl/helios.git
Step 2. Install requirements:
pip install -r requirements.txt
Step 3. Install Helios
As a local project installation using:
pip install .
Or as an "editable" installation using:
pip install -e .
Step 4: Enjoy!
For more information, see also installation page on heliosnetwork.io
Helios requires Python 3.7+ and the following mandatory dependencies:
- numpy >= 1.7.1
- vtk >= 8.1.0
To enable WebRTC streaming and enable optimizations to the streaming system, install the following optional packages:
Required for WebRTC streaming
Optional packages that may improve performance
After installation, you can install test suite requirements:
pip install -r requirements_dev.txt
And to launch test suite:
pytest -svv helios
There are many ways to start using Helios:
from helios import NetworkDraw from helios.layouts import HeliosFr import numpy as np vertex_count = 8 edges = np.array([ [0,1], [0,2], [1,2], [2,3], [3,4], [3,5], [4,5], [5,6], [6,7], [7,0] ]); centers = np.random.normal(size=(vertex_count, 3)) network_draw = NetworkDraw( positions=centers, edges=edges, colors=(0.25,0.25,0.25), scales=1, node_edge_width=0, marker='s', edge_line_color=(0.5,0.5,0.5), window_size=(600, 600) ) layout = HeliosFr(edges, network_draw) layout.start() network_draw.showm.initialize() network_draw.showm.start()
Helios project started as a replacement to the desktop version of the Networks 3D tools. The project evolved quickly along the summer of 2021 due to the GSoC’21 under the responsibility of the Python Software Foundation and the FURY team. The majority of the initial work has been done by @devmessias mentored by @filipinascimento and @skoudoro. The GSoC’21 project associated with Helios is “A system for collaborative visualization of large network layouts using FURY”. Check out the final report for more information.
Please, go to contributors page to see who has been involved in the development of Helios.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.