Skip to main content

Python library to work with complex networks

Project description

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 InformationKey FeaturesInstallationUsageHistoryCredits

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

helios-0.3.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

helios-0.3.0-py3-none-any.whl (29.5 kB view details)

Uploaded Python 3

File details

Details for the file helios-0.3.0.tar.gz.

File metadata

  • Download URL: helios-0.3.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for helios-0.3.0.tar.gz
Algorithm Hash digest
SHA256 685f0329dcc49e50e79bba6682d4b9209cd04849d86034c23f1a9815b3968332
MD5 03625caee23c9ea6b178c500fe90034a
BLAKE2b-256 d8c8fcfc904c69d51a59ef032ffa497405108f8446985601438784c4fa2b4ffb

See more details on using hashes here.

File details

Details for the file helios-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: helios-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 29.5 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for helios-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 38508c6295254c6440fe31d6e0bb9de3c91e7e17610fca335069c47412eaa0ea
MD5 490b2250025df67d060ecf3acf0a06df
BLAKE2b-256 8c491fb2016249d869abd72892bce866706cc8ecbbf12ce0660620f84a5425d1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page