|LWN.net needs you!|
Without subscribers, LWN would simply not exist. Please consider signing up for a subscription and helping to keep LWN publishing
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.
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.
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.
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.
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.
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