Talipot is an open source, cross-platform, data visualization framework mainly dedicated to the analysis, the drawing and the visualization of very large graphs (up to the million of nodes and edges).
It is a fork of Tulip created by David Auber, from LaBRI (Laboratoire Bordelais de Recherche en Informatique) and University of Bordeaux.
The Talipot framework offers numerous features, notably:
-
An efficient graph data model in terms of memory usage for storing large networks and the attributes of their elements (called properties in the Talipot semantics). It is also one of the few that offer the possibility to efficiently define and navigate graph hierarchies or cluster trees (nested subgraphs).
-
Several graph file formats for serializing such a model to disk, notably the TLP format based on a Lisp syntax for easy parsing but also the TLP binary format for faster graph saving and loading.
-
A large variety of graphs algorithms: clustering, metric, layout ... As Talipot is dedicated to graph visualization, it is provided with numerous state of the art graph layout algorithms but also a bridge to the Open Graph Drawing Framework.
-
A hardware accelerated graph rendering engine written in OpenGL, highly customizable in terms of visual encoding for graph nodes and edges, in order to efficiently generate aesthetic and interactive visualizations.
-
Multiple visualization components (called views in the Talipot semantics) for analyzing graph data using other representations than the classical node link diagram one: matrix, histograms, scatter plots, parallel coordinates, ...
-
Python bindings for the main Talipot C++ API, giving to Talipot scripting facilities for manipulating graphs loaded from its main graphical user interface. The bindings can also be obtained from the Python Packaging Index.
-
A plugin based architecture for easily extend the capability of the framework with new graph import mechanisms, graph algorithms, visualization components, ... Talipot plugins can be written in C++ or Python.
-
A graphical user interface, based on the Qt framework, enabling to easily interact and manipulate the different components of the framework.
Talipot is a cross-platform framework and can be compiled or installed on Debian, Fedora, OpenSUSE, Ubuntu, MacOS and Windows.
For each release, Talipot offers precompiled binaries for Linux (using AppImage), MacOS (dmg bundles) or Windows (NSIS based installers).
Talipot can be easily compiled on every supported platforms. However, that process can take some times depending on your system configuration.
The following dependencies are required to build Talipot:
- CMake >= 3.10
- A C++20 compiler : GCC >= 8 Clang >= 9 or Microsoft Visual Studio >= 2019
- FreeType
- FriBidi
- Fontconfig
- zlib
- zstd
- libgit2
- Qt >= 5.12.0
- OpenGL >= 2.0
- GLEW >= 1.4
- Qhull
- Graphviz
- QuaZIP
- yajl >= 2.0
- Python >= 3.0
- SIP >= 6.8.1 (if SIP can not be found or its version does not match the required one, you need to install it through the pip tool)
In order to generate the documentation, the following tools must be installed:
- Sphinx to build the User Manual, Developer Handbook and Python bindings documentation
- Doxygen to build the C++ API documentation
If you are a Linux user, all these dependencies can be installed with the package manager of your distribution.
If you are a MacOS user, we recommend to use MacPorts or Homebrew in order to easily install all these dependencies.
If you are a Windows user, we recommend to use MSYS2 as it greatly facilitates the build of Talipot on that platform (notably by providing up to date compilers and precompiled dependencies).
Hints on how to build Talipot for these three platforms can be found in the continuous integration setup for GitHub Actions and AppVeyor:
- ubuntu-build.yml
- macos-homebrew-build.yml
- macos-macports-build.yml
- windows-mingw64-build.yml
- appveyor_msvc.bat
Talipot is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Talipot is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.