In the summer of 2011, I participated in Google Summer of Code for the first time. The project I was working on was Orange, a data mining program developed by the Faculty of computer and information science in Ljubljana, Slovenia.
Orange is a collection of modules, written in C++ or Python. It also provides a canvas interface for graphical programming, written with PyQt.
My task over the summer was to write data visualization widgets. Orange’s requirements include the common x-y graph (scatterplot), along with several very specific methods of visualizing data. As I discovered during the course of my work, some of these methods were discovered by project members themselves, such as FreeViz.
Because of the specific needs of Orange, we decided to write the framework from scratch, only using the Qt toolkit, instead of using one of the existing plotting libraries (like Qwt). A new library also meant I could optimize of for Orange’s use case, which is most often a large number of simple points with custom non-cartesian axes. This turned out to be the right decision, because I completed the project in time. Using Qt’s functionality for animations and multi-threading, the plots performed well even with over 30.000 points.
The project was completed successfully, even though I am still adding some minor improvements to the code. I wrote two posts to the Orange blog with reports of my progress.
Introduction (with pictures)