The long-anticipated Inkscape version 0.4 was officially released earlier this month. Version 0.4 introduces a number of intriguing new features, including a new layering system, bitmap tracing, and support for text paths. In addition to the new features, the latest version of Inkscape sports 228 bug fixes, numerous interface enhancements, increased efficiency, and new tutorials on bitmap tracing and calligraphy.
The new layering system enables users to organize image elements into vertically stacked layers. Users can prevent accidental changes to a layer by locking it, and can easily hide or show all the elements of a layer by toggling its visibility.
Despite its usefulness, the layering interface seems painfully incomplete. In order to change the layer, one must use the drop-down menu that appears on the left side of the status bar, or use the mouse to select an object in the desired layer. While the status bar drop-down menu is pleasantly space-efficient, users might prefer having a window that provides immediate information about all the layers and their properties. Inkscape does not provide any visual mechanism that indicates what each layer actually contains, nor does it provide any way to see at a glance which layers are locked. In order to ascertain if a layer is locked, you must first navigate to that layer. Toggling the lock status on several layers in a row is quite a chore. Using the mouse to change the layer is often difficult, because objects in the layer you wish to reach can be obscured by objects in higher layers.
In Inkscape, the Tab key toggles between image components. In the new version, the Tab key will only toggle between image components within the current layer. Generally, this feature saves time, but the potential benefit of this feature diminishes dramatically when you realize that Inkscape does not include a keyboard shortcut that allows you to easily move between layers. Layer support has also been added to the search tool. It is now possible to search for elements by text content, ID, style, and attribute within the current layer as well as the entire document.
The image tracing capabilities of Inkscape 0.4 are impressive. Inkscape uses Peter Selinger's powerful Potrace application to automatically generate paths from bitmap images. Automatic vectorization is useful, and could potentially save a great deal of time. In one of my experiments, Inkscape was able to generate an almost perfect SVG rendering from a scanned pencil sketch.
When used in conjunction with Inkscape's path simplification tool, the bitmap tracing mechanism facilitates rapid construction of excellent scalable images. Despite my lack of artistic talent, I was able to produce a number of elegant program icons within a matter of minutes.
Bitmap tracing is extremely processor-intensive. Large, complicated bitmaps take time to process, and the massive number of path nodes that are produced by tracing such images often make the resulting image difficult to work with. In many cases, displaying all the nodes in the image takes longer than the actual tracing process. In instances where you wish to trace only parts of a bitmap, you must first crop the image in an external program, as Inkscape lacks a native image cropping mechanism of its own. Tracing unshaded pencil sketches generally produced the most impressive results for me, but I had some success with more complicated images when I experimented with the brightness setting. Color quantization works well when tracing images with dark colors. I was also able to achieve some unique affects by tracing text in bitmaps.
Inkscape 0.4 includes a useful tool that allows you to place text on a path. Once you've done that, alterations to the path are reflected in the positioning of the letters. This feature is well implemented, and consistently behaves as expected in most cases. In some cases, steep curves caused letters to overlap, but in most of my experiments this did not seem to be a problem. When the user resizes a path that is associated with text, the curvature of the text is altered and the letters are changed accordingly. Sometimes, when shrinking a path, the letters overlap. Attempting to shrink the path and the text simultaneously to account for such a problem did not work the way I expected it to -- the text and the path shrank in different ways, and the curvature of the text ceased to represent the curvature of the path.
Performance and reliability
Inkscape 0.4 is considerably faster than its predecessors, and it seems to be a bit less memory-intensive. So far, this version has been more stable than the previous version. In all the time I have spent with this Inkscape 0.4, it has crashed only once, and that was while creating a new layer. It is certainly stable enough for regular use in a production environment, but users should save often just in case.
Acquisition and installation
Inkscape source code is available for download from Sourceforge. Inkscape builds are also available for a number of platforms, including several Linux distributions, Windows, and Mac OS X. This new version of Inkscape uses bleeding-edge GNOME libraries, which may make it difficult for some users to install. I was able to install it on my Debian testing system by using a few packages from Debian unstable. Likewise, I was able to install it on an Ubuntu Warty system by using a few packages from Ubuntu Hoary. RPMs are available for Mandrake, SUSE, and Fedora. I have heard that the static RPMs work well on Fedora, but some SUSE users have reported dependency issues. SUSE users should read the SUSE package notice in the release notes.
I have tried several times to install previous versions of Inkscape on a Mac OS X PowerBook via Fink. I have not yet succeeded in doing so, but there are reports of (and screenshots that confirm) successful installations of Inkscape on Mac OS X.
I have not tested Inkscape on Windows, nor do I know of anyone who has, but the release notes warn that a number of serious bugs in the Windows port have yet to be resolved.
Inkscape is an excellent program, and the latest version is undoubtedly the best yet. Certain features, particularly layering, are still rough around the edges and should probably be used with care. Potrace performs very well, and Inkscape 0.4 integrates with it exceptionally well. Many interesting features are slated for inclusion in future versions, including support for SVG animation. Inkscape 0.4 lives up to expectations, and continues to illustrate the power of open source software development. I look forward to experimenting with future versions.