Skip to main content

Helios Networks [WIP]

helios

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).

General Information • Key Features • Installation • Usage • History • Credits

General Information

Key Features

  • 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

Installation

Use pip install pointed to this repository:

pip git+https://github.com/fury-gl/helios.git

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

Dependencies

Helios requires Python 3.7+ and the following mandatory dependencies:

  • numpy >= 1.7.1
  • vtk >= 8.1.0
  • fury

To enable WebRTC streaming and enable optimizations to the streaming system, install the following optional packages:

  • Required for WebRTC streaming

    • aiohttp
    • aiortc
  • Optional packages that may improve performance

    • cython
    • opencv

Testing

After installation, you can install test suite requirements:

pip install -r requirements_dev.txt

And to launch test suite:

pytest -svv helios

Usage

There are many ways to start using Helios:

Example usage:

   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()

History

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.

Credits

Please, go to contributors page to see who has been involved in the development of Helios.

Metadata

Release files for helios 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for helios 0.3.0
File Size Uploaded
helios-0.3.0.tar.gz 24.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for helios 0.3.0
File Interpreter ABI Platform
helios-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.1 kB

Release files / helios-0.3.0.tar.gz

Download URL helios-0.3.0.tar.gz
Size 24.6 kB
Tags Source
SHA-256 checksum
How to use checksums
685f0329dcc49e50e79bba6682d4b9209cd04849d86034c23f1a9815b3968332
BLAKE2b-256 checksum
How to use checksums
d8c8fcfc904c69d51a59ef032ffa497405108f8446985601438784c4fa2b4ffb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

Release files / helios-0.3.0-py3-none-any.whl

Download URL helios-0.3.0-py3-none-any.whl
Size 29.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
38508c6295254c6440fe31d6e0bb9de3c91e7e17610fca335069c47412eaa0ea
BLAKE2b-256 checksum
How to use checksums
8c491fb2016249d869abd72892bce866706cc8ecbbf12ce0660620f84a5425d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.3

19 release files

0.2.1

22 release files

0.1.8

9 release files

0.1.7

6 release files

0.1.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page