TOOL
Tulip logo

Tulip

Tulip is an open-source information-visualization framework dedicated to the analysis, drawing, and interactive visualization of large relational data. It was created by David Auber in 2001 at LaBRI (Laboratoire Bordelais de Recherche en Informatique), University of Bordeaux, and is developed and maintained by a small academic team. The core is written in C++ and released under the GNU LGPL; it runs on Linux, Windows, and macOS. Development remains active, with the 6.x series released in 2024-2025. Tulip is engineered for scale, designed to hold and manipulate graphs in the range of a million nodes and several million edges in memory.

The central abstraction is a mutable in-memory graph whose most distinctive feature is a hierarchy of nested subgraphs (a cluster tree): any graph can host arbitrarily deep induced subgraphs that share the same underlying nodes and edges. Data is attached through typed, serializable "properties" defined over nodes and edges — booleans, integers, doubles, strings, and visual attributes such as layout coordinates, color, size, and shape. Properties can be inherited or overridden along the subgraph hierarchy, which makes Tulip well suited to exploratory workflows where multiple views and clusterings of the same dataset coexist. A large library of plugins supplies graph algorithms (layout, clustering, metrics, coloring) that operate on these properties.

For interchange Tulip uses three native serializations: the human-readable text format format:tulip-tlp-2.3 (.tlp, gzip-compressible), the compact format:tlp-binary (.tlpb), and format:tlp-json. Beyond its own formats it imports format:gml, format:graphml, Graphviz format:dot, format:gexf-1.3 (Gephi), format:pajek, format:tgf, UCINET DL, and CSV, and can export to TLP variants, GML, and CSV as well as SVG for rendered views.

In the graph-data ecosystem Tulip occupies a niche similar to tool:gephi and tool:cytoscape — a desktop application plus a reusable library — but with stronger emphasis on the C++ framework, the subgraph hierarchy, and very large graphs. The tulip-python bindings expose the API to scripting and integrate with the scientific Python stack, complementing libraries such as tool:networkx and tool:igraph, and its layout engine draws on algorithms comparable to those in tool:ogdf.

Limitations are worth noting honestly. The heavy C++ framework and large binary make Tulip more demanding to install and embed than lightweight libraries; its export format coverage is narrower than its import coverage (no GraphML or DOT export, for instance); documentation is uneven and the user community is small and academic; and the desktop application's learning curve is steep compared with more mainstream network tools.

Graph Formats(Input & Output)

Frequently Asked Questions

What graph file formats does Tulip support?

See the list on this page — it shows every format Tulip can read, write and display.

How do I import a graph into Tulip?

Convert your file to a format Tulip can read, then open it in Tulip. Use GraphInOut to get a Tulip-compatible file in seconds.

How do I convert a file so Tulip can open it?

Use the convert links above — upload or paste your graph, pick a format Tulip accepts and download the result, right in your browser.