Large graphs analysis, drawing and visualization framework
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bundlers fix for build of Tulip AppImage: there is no 32 bit version of centos… Oct 29, 2018
cmake FindQtX.cmake fix: QT_QMAKE_EXECUTABLE is not set by Qt5 but it is us… Jun 1, 2018
demos more code cleanup Jul 1, 2018
deploy update Tulip CI on Travis and AppVeyor : Nov 11, 2017
doc minor user doc fixes after the recent updates of Geographic view and … Jul 6, 2018
externalplugins My previous commit wasn't good. The behavior has to changed following Feb 15, 2018
library minor cleanup: no need of unique_ptr template Dec 10, 2018
plugins [Jenkins] clang-format commit (05/12/18) Dec 5, 2018
screenshots add a nice README.md for Tulip and remove outdated files Nov 12, 2017
software fix for github issue #58: allow to interact with TulipPerspectiveCras… Dec 3, 2018
tests add tlp::selectShortestPaths(Graph*, node, node, ...) in GraphTools +… Nov 30, 2018
textures fix 'libpng warning: iCCP: known incorrect sRGB profile' message when… Nov 30, 2017
thirdparty fixes for python wheels build in manylinux1 docker image + some licen… Sep 28, 2018
utils fix for misinitialization of TulipFontAwesome on windows platform Jun 6, 2018
.clang-format add forEach in clang-format ForEachMacros then apply clang-format Nov 28, 2017
.gitignore update gitignore Nov 24, 2017
.travis.yml travis.yml: Fix some MacOS builds Oct 1, 2018
AUTHORS update my affiliation Aug 3, 2017
CMakeLists.txt Ready for Tulip 5.2.1 Oct 18, 2018
COPYING add LGPL for library and plugins parts Jun 18, 2009
COPYING.LESSER add LGPL for library and plugins parts Jun 18, 2009
NEWS cleanup May 19, 2010
README.md README.md cleanup May 28, 2018
appveyor.yml remove BinTray deployment Feb 20, 2018
appveyor_msvc.bat Remove automatic build of tulip python wheels in msvc environment (de… Oct 15, 2018
appveyor_msys2.bat MSYS build fix: --force vs --overwrite confusion ??? Dec 10, 2018
header.txt update Tulip website url in license header and comments Aug 15, 2017
tulip-config.in fix for tulip-config libs options failing since commit ef1aa8f + fix … Jan 10, 2018

README.md

Tulip license GitHub last commit Build Status Build Status SourceForge PyPI version

alt text

Tulip 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 has been created by David Auber, from LaBRI (Laboratoire Bordelais de Recherche en Informatique) and University of Bordeaux, and maintained over the years by an average size development team. Until the 5.1 release, the main Tulip code repository (subversion based) was hosted on SourceForge. That repository is now in read-only mode and future development of Tulip will be hosted here.

alt text

Overview

Tulip is an information visualization framework dedicated to the analysis and visualization of relational data. Tulip aims to provide the developer with a complete library, supporting the design of interactive information visualization applications for relational data that can be tailored to the problems he or she is addressing.

Written in C++ the framework enables the development of algorithms, visual encoding, interaction techniques, data models, and domain-specific visualizations. One of the goal of Tulip is to facilitates the reuse of components and allows the developers to focus on programming their application. This development pipeline makes the framework efficient for research prototyping as well as the development of end-user applications.

Features

The Tulip 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 Tulip 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 Tulip 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 Tulip 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 Tulip C++ API, giving to Tulip 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, ... Tulip 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.

Documentation

Below are some links to relevant documentation resources about the Tulip framework:

Installing Tulip

Tulip is a cross-platform framework and can be compiled or installed on FreeBSD, main Linux distributions (Debian, Fedora, OpenSUSE or Ubuntu, the packages provided are not necessarily in synch with latest Tulip version), MacOS and Windows.

Precompiled binaries

For each release, Tulip offers precompiled binaries for Linux (using AppImage), MacOS (dmg bundles) or Windows (NSIS based installers). You can download those binaries from SourceForge.

Compiling from scratch

Tulip 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 Tulip:

In order to build the Python components, the following dependencies are needed:

  • Python >= 2.6
  • SIP >= 4.19.3 (if SIP can not be found or its version does not match the required one, it will be compiled using a copy of its source code in the Tulip tree)

The following dependencies are also needed but they will be compiled from the Tulip source tree if they can not be found on your system:

In order to generate the documentation, the following tools must be installed:

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 in order to easily install all these dependencies.

If you are a Windows user, we recommend to use MSYS2 as it facilitates a lot the build of Tulip on that platform (notably by providing up to date compilers and precompiled dependencies).

Hints on how to build Tulip for these three platforms can be found in the continuous integration setup for TravisCI and AppVeyor:

References

Below are some scientific publications related to Tulip (see Tulip bibliography for more information):

  • David Auber, Daniel Archambault, Romain Bourqui, Maylis Delest, Jonathan Dubois, Antoine Lambert, Patrick Mary, Morgan Mathiaut, Guy Mélançon, Bruno Pinaud, Benjamin Renoust and Jason Vallet. TULIP 5. In Encyclopedia of Social Network Analysis and Mining, Springer, pages 1-28, 2017. https://hal.archives-ouvertes.fr/hal-01654518

  • David Auber, Romain Bourqui, Maylis Delest, Antoine Lambert, Patrick Mary, Guy Mélançon, Bruno Pinaud, Benjamin Renoust and Jason Vallet. TULIP 4. Research report. LaBRI - Laboratoire Bordelais de Recherche en Informatique. 2016. https://hal.archives-ouvertes.fr/hal-01359308

  • David Auber, Daniel Archambault, Romain Bourqui, Antoine Lambert, Morgan Mathiaut, Patrick Mary, Maylis Delest, Jonathan Dubois, and Guy Mélançon. The Tulip 3 Framework: A Scalable Software Library for Information Visualization Applications Based on Relational Data. Technical report RR-7860, INRIA, January 2012. https://hal.archives-ouvertes.fr/hal-00659880

  • Antoine Lambert and David Auber. Graph analysis and visualization with Tulip-Python. EuroSciPy 2012 - 5th European meeting on Python in Science, Bruxelles. https://hal.archives-ouvertes.fr/hal-00744969

  • David Auber. Tulip - A Huge Graph Visualization Framework. Graph Drawing Software, Springer, pages 105-126. 2004. http://tulip.labri.fr/publi_tulip/auberChapterTulipGDSBook.pdf

License

Tulip is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

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