Skip to main content

Tulip 3.5.0 beta 1

Tulip 3.5 has reached feature-completion about one week ago, and is now stable enough for a beta release. We have a few known bugs to fix before a final release (hopefully next monday), but try this beta and report bugs if you find any.

We are distributing Windows and Mac OS binaries, but no Linux packages for now.

This beta is not intended for production use (i.e. it will eat your kittens), and the packages may be buggy. If so please tell us.

Here is a highlight of the most important changes in Tulip 3.5 :

Python

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

We finally integrated the python scripting support into Tulip ! We stated on distributing python, to avoid forcing you to keep a specific version when you want to benefit from the goodness in a newer version.

For now Python is a Tulip view plug-in, but this is not strictly coherent with Tulip's philosophy of views, so it will probably be changed in the future.

You can access all of Tulip's core API, and tulip-ogl to some extent. tulip-qt is, for now, out of reach.

This is because to bring you tulip-qt, we would need to distribute PyQt. For now this feature was not deemed necessary enough to add another dependency. We may distribute PyQt and tulip-qt separately in the future,  but don't take my word for it.

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

We have some cool ideas on how to use it, and we may very well just give some example scripts.

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 !

Cosmetic changes

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

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

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 2 in the latest nightly, and I have already fixed one of them :)

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.