User: Password:
Subscribe / Log in / New account

A preview of Inkscape 0.49

Benefits for LWN subscribers

The primary benefit from subscribing to LWN is helping to keep us publishing, but, beyond that, subscribers get immediate access to all site content and access to a number of extra site features. Please sign up today!

By Nathan Willis
December 19, 2012

The Inkscape vector graphics editor is approaching its next milestone release, version 0.49. As always, the update rolls together a wealth of new tools and features. This development cycle is relatively light on large-scale additions, but there is a long list of small usability enhancements that will add up to a smoother design experience for most users.

The project just released a bugfix to the stable 0.48 series, and although Inkscape is decidedly a "released when ready" application, the murmuring is that Inkscape 0.49 could hit virtual shelves as soon as January 2013. In the meantime, there are fairly stable nightly builds available from the trunk for those who wish to experiment.


Two new tools debut in Inkscape 0.49. The first is the measure tool, a long-awaited addition that has applications in computer-aided drafting (CAD) and other drawing tasks that require precision object placement. As is the case with most graphics applications, one can measure an object by clicking with the tool and dragging out a line. However, where a raster application like Gimp can only measure the length of the line segment defined by the mouse movement, Inkscape measures the distance between drawing objects. Wherever the measure tool's line intersects a path or object, an "x" appears, and the tool overlays the distance in pixels between intersections, the total distance if there are multiple intersections, and the angle of the line.

[Inkscape 0.49's measure tool]

The other new tool is the PowerStroke pen previewed at Libre Graphics Meeting (LGM) 2012, which we discussed in May. PowerStroke is an effect that produces calligraphy-like lines that change width, much like hand-inked pen or brush strokes. Of course, the advantage of using an Inkscape tool rather than actual ink is that the paths drawn as well as their attributes are fully adjustable after the fact. PowerStroke is better integrated now than it was at LGM, with improvements to the sometimes tricky joints at sharp corners.

Several of the existing tools pick up noteworthy features in this release. The node editor (which allows the user to adjust and edit the on-curve points and control points of Bézier splines) can now automatically add points at the curve's maxima and minima. Not every design task is improved by ensuring that a curve has points at its extrema, but there are a lot of scenarios where it makes calculations easier — consider calculating the bounding box of a path, for example. Consequently, having curve points at the extrema is sometimes required, and having Inkscape create them with one click is a genuine time-saver.

The gradient editor has been reworked. In previous releases, editing a gradient opened a floating window in which one could add or remove gradient stops and adjust colors. The new editor works on-canvas, with add/remove buttons and a color selection widget on the toolbar. The "snap to" functionality is not a tool in its own right, but over the past few releases, Inkscape's snapping has evolved into a complex beast. New in this release is the ability to set snap-to-path-intersection and snap-to-guide-intersection, plus the ability to snap a path perpendicularly or tangentially while drawing it. Snapping to text is also improved.

Similarly, Inkscape's new "symbols library" is not a tool per se, though it does add functionality. The library is based on SVG's <symbol> element, which is used to define reusable graphical objects. One could always duplicate a normal SVG object, of course, but the idea is that SVG can be used to create common collections of frequently-referenced symbols, in the same way that named colors can simplify SVG documents that need to reuse identical color in multiple spots. Whether one finds that idea enticing or not, Inkscape can now take advantage of it, providing access to "libraries" of symbols and enabling users to create their own. Two symbol libraries are built in: one with logic gates, and the other with international road and travel symbols.

[Inkscape 0.49's Voronoi diagram generator]

Beyond the basic tools, a handful of new extensions is included that also offer new functionality. Inkscape extensions tend to be more task-centric, so not every user will find them helpful, but they can also offer surprisingly sophisticated features. For example, one new extension allows N-up page layout for printing large documents. Another allows converting drawings to the G-code format used by computer-controlled cutting machines. There are also extensions for generating QR codes, isometric grids, and Voronoi diagrams, plus smaller extensions to replace fonts in a document, extract text, and the "guillotine," which can split a drawing up with guide lines to export it as multiple PNG images.

Environmental and usability tweaks

In practice, Inkscape's tool set is extensive enough that it can be mind-boggling to hear that some users still find it lacking, but such is the lot of the general-purpose creative application. On the other hand, the diverse tool set can frequently result in enough complexity that the application begins to get in the way. On that front, the project is making frequent small improvements that fix minor annoyances.

For instance, layers have often felt like an afterthought in Inkscape. The layer controls are small and tucked away at the bottom of the window. Changing layer visibility or order was not intuitive. Inkscape 0.49 improves things by allowing the user to re-order layers with a simple drag-and-drop. Gimp and Krita still provide a nicer layers interface (in Inkscape, a drawing's layers are listed in a drop-down selection widget, rather than a list with all layers visible at once), but the fix is an improvement.

Selecting the right object from a position where multiple objects are stacked or overlap has been another pain point; Inkscape 0.49 allows the user to cycle through the options at the cursor point using the mouse scroll-wheel. Users can also increase the size of the "handles" shown for grabbing and manipulating path nodes, toggle the visibility of guides, and edit keyboard shortcuts. Inkscape will now remember from session to session which tool palettes are open and their various screen positions, too, eliminating the need to reconfigure the application at every start-up.

A particularly novel feature is the ability to enter arithmetic operations into spinboxes. For example, if a rectangle is 1071 pixels wide and needs to be shrunk to 1/7 of that size, the user can simply enter /7 into the width box and hit Return, rather than waste precious minutes hunting for a pencil or searching for the calculator in GNOME Shell's "Activities overview." The Inkscape wiki does not provide a canonical list of which calculations are supported, but it does provide examples with nested parentheses and even physical units (e.g., mm instead of pixels). No word yet on logarithms, infinite series, or complex numbers — mathematicians take note; this is clearly a feature in need of serious stress-testing....

There are also several improvements aimed at using Inkscape for print work. The background display color of the canvas can be changed without changing the color of the document itself. That would be useful, for example, if designing a flyer that will be printed on tan paper — one needs to see how the design will look against tan, but adding a solid-color rectangle as a background object is a kludge. The interface can be toggled between normal full-color display and grayscale, which again allows the user to preview output — although this feature has other uses; it is often a good idea to design a logo in grayscale first, to establish contrast and readability, and grayscale is important for supporting people color-impaired vision.

PDF and TeX export have been improved, which can benefit print or electronic output. The PDF exporter can now automatically add a "bleed" margin, and TeX export now supports text styles — including, font nerds will be happy to learn, distinguishing between oblique and italic styles. In addition, support for export to Gimp's XCF format has been improved, and it is now possible to export drawings to Flash XML Graphics (FXG), XAML, and to the native format for the open source vector animation application Synfig.

Over and out

The new Inkscape series is not all bling, however. There are a number of performance and rendering improvements rolled into 0.49, too. The first is the long-awaited merging of Google Summer of Code work from 2010 and 2011 that ported the rendering engine to the Cairo raster graphics library. This results in improved responsiveness when editing and closes a number of outstanding rendering bugs. Responsiveness is also improved through caching, and memory usage is reduced; the release notes cite a four-fold reduction in the memory required over Inkscape 0.48. Cairo is also responsible for the grayscale preview mode mentioned earlier, and is used as the PNG export engine.

The other under-the-hood change of significance is the addition of multithreading through OpenMP. This change is primarily felt through speed improvements when using filters; the OpenMP parallelization can take advantage of all CPU cores on the system. Inkscape implements many effects through SVG filters even when they are not labeled as such explicitly (such as the "blur" slider available on every object). In addition, each release adds more live previews to path effects and extensions. The upshot is that multithreading is likely to benefit a lot of users even if they do not employ complex filters in their normal workflow.

Overall, Inkscape 0.49 is shaping up to be a solid improvement. It is hard to generalize about the impact of features like Cairo rendering and multithreading; some users may feel no improvement at all, while others may be ecstatic. The same goes for the new tools and features — if you use G-code or TeX the benefits are clear, if you have some other design needs you might not even notice the new features. On the other hand, the usability improvements (particularly to selection and window management) are more or less universal. But the truly interesting aspect of any new Inkscape release is seeing how users will take to a new drawing mode like PowerStroke, because that is ultimately unpredictable. Inkscape is a "creative" application: its biggest enhancements are in how it allows end users to think, and act, a little more creatively with every new release.

(Log in to post comments)

A preview of Inkscape 0.49

Posted Dec 20, 2012 8:59 UTC (Thu) by aaribaud (subscriber, #87304) [Link]

Good news! I've been using Inkscape for several years in a very specific manner -- translating webcomics -- which involves quickly drawing oddly-shaped closed curves for balloon translations, cutting weird shapes to hide out-of-balloon texts, laying out and cutting translated texts in interesting ways, and Inkscape just makes this easier with each release.

A preview of Inkscape 0.49

Posted Dec 20, 2012 9:31 UTC (Thu) by robert_s (subscriber, #42402) [Link]

"No word yet on logarithms, infinite series, or complex numbers — mathematicians take note; this is clearly a feature in need of serious stress-testing...."

Perhaps they should just embed the qalculate engine ;)


A preview of Inkscape 0.49

Posted Dec 20, 2012 10:18 UTC (Thu) by ms (subscriber, #41272) [Link]

Measure looks interesting, but unless I'm missing something (very possible), I would still consider inkscape unfit for CAD work. The chief problem is that if you try to position an object by coordinates, you're positioning the bounding box, thus outside the lines, rather than down the centre of the lines. This is most frustrating with simple rectangles and squares, where "adjacent" objects end up butting-up to each other rather than sharing the same coordinates for some of their points. Thus really you have to work point-by-point, which then means you have to do all the maths yourself. All that said, I might be mis-using it, or there may be tools I've not spotted.

For simple 2D CAD work, the best I've found is librecad, though it's well worth watching the youtube videos because using it is very different from a vector graphics program like inkscape.

Don't get me wrong though - I really like inkscape and think it's a great tool. But even with all the measurement tools in the world, I wouldn't really consider it for CAD work.

A preview of Inkscape 0.49

Posted Dec 20, 2012 13:21 UTC (Thu) by n8willis (subscriber, #43041) [Link]

It sounds like you're referring to "visual bounding box" versus "geometric bounding box," which is a preference -- geometric does not take the stroke width into account. Is that what you mean? In any case, although I would not want to be accused of steering people toward Inkscape for high-precision machining, there evidently are a lot of people who are using it for things like laser-cutting and vinyl-cutting; I don't know what term one would apply to that to distinguish it from "hard core" drafting -- it can get pretty detailed, depending on the hardware.


A preview of Inkscape 0.49

Posted Dec 20, 2012 15:38 UTC (Thu) by bronson (subscriber, #4806) [Link]

That would be an awesome article!

A preview of Inkscape 0.49

Posted Jan 8, 2013 21:36 UTC (Tue) by n8willis (subscriber, #43041) [Link]

I agree, and it's already been written, by Alexandre at LGW:

A preview of Inkscape 0.49

Posted Dec 20, 2012 16:11 UTC (Thu) by ms (subscriber, #41272) [Link]

Many thanks for the pointers - I figured I should just go RTFM rather than whining on lwn about stuff like this, thank you.

I don't mean to go on, and I'll stop after this, but one other example of why I prefer not to use inkscape for CAD work. This is with inkscape 0.48, so may have been fixed in 0.49.

1. Start inkscape.
2. Set document units to mm (I can't find where to set this as default in preferences, but I'm willing to bet it's there).
3. Quickly create a box, any where, any size - doesn't matter.
4. Select and Path -> Object to Path
5. Now set the X, Y, then Width and Height to nice round numbers. I set X to 30, Y to 140, then Width to 70 (and watch! - X now changes to 29.974, and Width to 70.052), then set Height to 70 (Y now changes to 139.994 and Height changes to 70.012).

This is repeatable, in so far as the X and Width change when you set Width, and the Y and Height change when you set Height. How they change is less predictable. In case it makes any difference, I have now set to Geometric bounding box. Yes, I know I really should go check 0.49 and then file a bug if it still persists.

If people are successfully using Inkscape for proper drafting work then this really must be me somehow - I can't believe anyone seriously using Inkscape for drafting would be willing to cope with this sort of problem.

A preview of Inkscape 0.49

Posted Dec 20, 2012 16:31 UTC (Thu) by rleigh (guest, #14622) [Link]

I've run into this issue, but for different reasons: designing microfluidic networks at the micron scale using mm sized page sizes. I ran into the resolution limit of inkscape here--rounding and point placement quantisation to whatever inkscape uses internally as its fundamental unit.

It would certainly be nice if one could specify the native unit system and required precision, e.g. µm, nm, mil (1/1000"), 1/16" etc. to n d.p. to be able to work with suitable precision and accuracy for the task at hand.

A preview of Inkscape 0.49

Posted Dec 20, 2012 18:53 UTC (Thu) by bats999 (guest, #70285) [Link]

I believe you need to set the document's default units and guide units to the same thing. Then make sure you have grid snap enabled appropriately. These can be found under File->Document Properties (version 0.48).

I suppose one could choose a degree of precision with the grid spacing; I'm not sure how cumbersome that would be in practice.

A preview of Inkscape 0.49

Posted Jan 4, 2013 14:29 UTC (Fri) by duffy (guest, #31787) [Link]

Feel free to pile onto my bug about this. I'm not doing the sort of work you're doing, I'm doing mostly UI mockups and digital art, but it still affects me as well:

I've been a teacher in various programs where we teach kids how to use Inkscape and this weird floating point thing is one of the most confusing and challenging issues I have to deal with in the classes.

A preview of Inkscape 0.49

Posted Jan 8, 2013 7:41 UTC (Tue) by csawtell (guest, #986) [Link]

Scribus does the same kind of nonsense.

A preview of Inkscape 0.49

Posted Dec 20, 2012 17:07 UTC (Thu) by duffy (guest, #31787) [Link]

Great article; thanks for the updates on the latest Inkscape developments!

A preview of Inkscape 0.49

Posted Sep 26, 2013 7:38 UTC (Thu) by csamuel (✭ supporter ✭, #2624) [Link]

10 months on and still no 0.49 release, only a 0.48.4 release back in January.. trouble at mill?

Copyright © 2012, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds