GSoC2011: what’s up with Inkscape

GSoC2011: what’s up with Inkscape

The GSoC related series of postings continues. Let's talk about Inkscape. As organization they have been participating since the very beginning of Google Summer of Code program, that is, since 2005

This year the organization had four students of which three successfully passed final evaluation. We already spoke of one of the projects at length: caching of the rendering, separate for documents and things like selection cues.

Krzysztof probably wasn't satisfied with doing just that, because after the end of his project he started work on removing last bits of libnr, one the the old, not quite so cool libraries inherited from Sodipodi all those years ago. Instead a much sexier lib2geom library is used now.

The second GSoC project, by Fernando Lucches and his mentor Felipe Sanches, was all about finishing previously started UI for managing external and embedded scripts. The Document Settings dialog now features subtabs for exactly that (including editing embedded scripts) as well as for listing objects that have interactivity assigned to them.

Managing scripts in Inkscape

This project is already quite complete, but needs some more polishing before being merged to trunk and end up in Inkscape 0.49.

The last successful project was by Abhishek Sharma who worked on improving how Inkscape writes CSS. Thanks to him Inkscape can now figure out what attributes are incorrect and what attributes are far too optional to keep. The net outcome is that Inkscape can write smaller SVG files, up to 20% in some cases.

Abhishek has also become upstream libcroco maintainer and pushed some useful changes from Inkscape's local copy of the library. This project needs some work to become ready for inclusion into 0.49, but is likely to be part of it.

The only unsuccessful project was a KML to SVG converter. There is however some useful code for an interested contributor to build upon. Since KML is XML based, the converter is, in fact, a bunch of XSLT files.

So here are the highlights of v0.49:

  • lots, lots of refactoring and cleanup of code;
  • much faster rendering thanks to Cairo, multithreaded SVG filters rendering and smart caching;
  • a new Measure tool and extensions for type design;
  • new experimental extensions to create SVG filters;
  • Gcode extension for CNC.

How soon should we expect it? Probably not too soon. Some Cairo related changes demand a newer version of Cairo and a patched pixman library which are both not yet available in major Linux distributions.

Was it useful? There's more:

3 Responses. Comments closed for this entry.

  1. Very documented and clear as usual. Thanks Prokoudine !

  2. What are the dependencies of Inkscape 0.49? could use an update.

  3. @testerus Good point. I’ll see what needs doing there. Basically, 0.49 wants the newest version of Cairo that isn’t yet available everywhere. If you are on Ubuntu, ‘sudo apt-get build-dep inkscape’ will get you all other dependencies except probably lxml and numpy modules for python. But then you could just use nightly builds PPA.