/Vizor

Public mirror of Vizor, a graph-visualisation library in Pharo. Developed by REVEAL @ Software Institute, USI Lugano.

Primary LanguageSmalltalkMIT LicenseMIT

Vizor

Vizor is a graph visualization and interactive exploration library developed by Aron Fiechter and Marco Raglianti @ REVEAL.

With Vizor you can:

  • create graphs of objects
  • map metrics to the nodes and edges representing such objects
  • select entities manually or programmatically and spawn new subgraphs to refine your exploration
  • choose how to layout entities on the canvas
  • leverage predefined view specifications or create custom ones to visualize a subset of the nodes and edges
  • ...

Vizor is developed in Pharo, tested and usable with Pharo 8 (see Pharo 8 Compatibility) and 11, and released under MIT License.

Installation and Usage

Load from Metacello

To add Vizor to a Pharo image you can run the following command in a playground.

Metacello new
    baseline: 'Vizor';
    repository: 'github://USIREVEAL/vizor:main';
    load.

Vizor as a library

If you wish to set a dependency to Vizor in your application, you simply need to add the following in your baseline:

| vizorVersion |
vizorVersion := 'main'.
spec
    baseline: 'Vizor'
    with: [
        spec repository: 'github://USIREVEAL/vizor:' , vizorVersion
    ]

Usage

See examples in Vizor-GUI - Examples.

Pharo 8 Compatibility

Version 1.1.0 is the latest version compatible with Pharo 8. Development for recent Pharo versions resumed and backward compatibility of new features is not guaranteed nor tested.

To import that specific version of Vizor:

Metacello new
    baseline: 'Vizor';
    repository: 'github://USIREVEAL/vizor:v1.1.0';
    load.

Publications

Vizor was used in the following scientific research papers:

  • Raglianti, M., Nagy, C., Minelli, R., & Lanza, M. (2022). DiscOrDance: Visualizing Software Developers Communities on Discord. Proceedings of ICSME 2022 (38th International Conference on Software Maintenance and Evolution), pages 474-478, IEEE.
  • Raglianti, M., Nagy, C., Minelli, R., & Lanza, M. (2022). Using Discord Conversations as Program Comprehension Aid. Proceedings of ICPC 2022 (30th International Conference on Program Comprehension), pages 597-601, ACM.
  • Raglianti, M., Minelli, R., Nagy, C., & Lanza, M. (2021). Visualizing Discord Servers. Proceedings of VISSOFT 2021 (9th Working Conference on Software Visualization), pages 150-154, IEEE.
  • Fiechter, A., Minelli, R., Nagy, C., & Lanza, M. (2021). Visualizing GitHub Issues. In VISSOFT 2021 (9th Working Conference on Software Visualization), pages 155-159, IEEE.