Skip to main content

Tulip 3.5.0 is out !

Posted in

We finished polishing Tulip 3.5.0, and are finally releasing it !

This release is only the beginning of some exciting changes in Tulip's UI to make it more user-friendly. The CSV import is a good example of how we plan to make powerful features accessible. We also made some nice improvements on rendering speed, and fixed lots of bugs, many of which were reported during the development of 3.5.

Many thanks to all the bug reporters and early testers who helped us stabilize this release more than any before it !

Read on for more details about the new features in this release.

CSV Import

The CSV import was re-written from scratch, and now takes the form of a wizard.

Easier to use and more robust, it makes importing data in CSV format a breeze !

Take a look at it in action here !

Cosmetic changes

A few details here and there were tweaked, that will make the overall user experience smoother.

The color mapping now has a completely different GUI, far more powerful than the old one, making it easy to pick a mapping from the ones we offer by default, or compose your own !

We have added feedback on the interactors when your mouse is over a node or edge (e.g. the New Node interactor now changes the cursor to indicate you cannot create a new node on top of an existing one).

The window that pops up when you have multiple controllers installed is now a bit easier to use, the Plugins Manager displays helpful apply/discard buttons, and more !

The Magic Wand interactor has seen some modifications, making it more powerful and easier to use (e.g. it can now replace selection, add to current selection, intersect with current selection, or remove from current selection).

Python

Please note that we use Python 2 and not Python 3 for this release.

We finally integrated the python scripting support into Tulip !

You can access all of Tulip's core API, and tulip-ogl to some extent.

This Python view will allow for fast prototyping of algorithms, Graph generation, and whatnot.

For some examples of scripts, take a look on this page.

Linux Bundles

We changed the way we distribute linux binaries, as generating packages for every distribution out there was too much of a hurdle for our little team.

We decided to use a system similar as what we yuse under windows and Mac OS X, and also similar to what Skype, Texmaker or some other softwares use.

This allows us to use whatever version of Qt we like, and not hold it back for compatibility with any linux distribution who deemed it unstable.

But most importantly, it allows us to be certain the executables you have were built the same way as the software was, allowing for any linux user to use the plug-ins server, and increasing the reliability of the plug-ins distributed this way.

Under the hood

Tulip 3.5 has seen some refactoring and optimizations, and we have an increase of over 200% for edge rendering performances, removed lots of old code, and we made a huge step in getting rid of the displaylists for good !

We switched completely from the autotools to CMake, reducing our compilation times, and allowing for more compilers to be used !

Also, we cleaned up the code a good lot, as we activated the -Wall and -Wextra options of GCC to display lots of warnings. We went from over 400 warnings to only a handfull.

Most of these warnings were completely harmful (i.e. over 300 unused parameter warnings and around 100 unsigned int and int comparison), and if a dangerous warning comes around, we will spot it instantaneously !

We added support for Visual Studio compilation (only versions 2008 and 2010 have been tested), because we know lots of people use Visual Studio out there, and now using Tulip in a huge Visual Studio code base is possible !

It is not officially supported for now, meaning some functionality is not building/working with Visual Studio (i.e. the HistogramView does not build, and thus cannot be distributed).

We also made some change to compile with Clang 2.8, which has the advantage of providing easily readable wranings and errors. Clang is not officially supported either, meaning clang compilation can be broken at any time, for any period of time.

We have changed a bit how we create packages for windows and Mac OS, as we are now using CPack.