September 22, 2005

Inkscape review: It's all in the UI

If Inkscape were at the 1.0
release level, I could easily forget a reviewer's
responsibility and gush about it like an adolescent in love.
Fortunately, it is
only at version 0.42.2, and has enough gaps in functionality that I can
view it
more sensibly. A Scalable
Vector Graphics (SVG) program
,
Inkscape faces
a pack of competitors, including Adobe
Illustrator
, Corel
Draw
, Macromedia
FreeHand
, OpenOffice.org
Draw
, and

Xara X
. Yet, even at
its current  early stage, Inkscape has already distinguished
itself from the crowd. By focusing its development on the basic
interface, objects and paths, and text objects, Inkscape already shows
an awareness of interface and usability issues  that makes it
one
of the most promising desktop free software projects of the last few
years.


The editing window interface

When Inkscape starts, the first impression is one of difference. Most
of this
impression is due to the icons. Apart from the usual file and print
icons, most
are unique to Inkscape. At their best, they not only illustrate the
function they invoke, but also show their relation to similar
functions. The rotate icons,
for example, are a series of arrows, while the group icons shows a
series of
polygons with a red line around. If the icons designs are sometimes too
small
to be be easily seen, taken as a whole, they still serve as early
notice
that the Inkscape project is alert to interface issues.

One obvious interface choice in Inkscape is a reliance on keyboard and
mouse
button combinations rather than a straight point and click interface.
This
choice is a mixed blessing. On the one hand, once the combinations are
learned,
they are far more efficient than relying on a menu or toolbars. As much
as possible,
they keep your mouse on the drawing, and your hands on the keyboard. On
the other hand,
they mean a learning curve steep enough for a cardiovascular workout.

Even the blank editing window
shows Inkscape's consciousness
of UI.

They also mean that the floating palette of tools found in Adobe
graphics programs
or the GIMP simply aren't there. In fact, first-time users could easily
believe that
Inkscape is less developed than it really is, since several actions are
not listed in the menus or toolbars at all.

If you get this impression, a look at Help > Keys and
Mouse
will
disabuse you. This menu item opens an Inkscape file that contains a
color-coded
list of hundreds of shortcuts -- including, in all likelihood, the
features you thought
were missing. This file is so useful that the first thing anyone
seriously interested
in Inkscape should do is print it and prop it by the computer.

The Keys
and Mouse file is
one of only half a dozen help files. Rather than customary
help files arranged by menu items or tasks, most of these files are
tutorials about different
aspects of the program. Each is an Inkscape file, which means that
users can try actions
in the same window as the instructions. Unless users read while logged
in with the root
account, the tutorial files can't be over-written, and the result is a
simple but effective way
to teach new users. Each tutorial takes about 20 minutes to complete.
Although some
features are not covered, by the time users have finished all of them
they should have a strong understanding of what Inkscape can do.

Inkscape is keyboard driven.

Not everything in Inkscape's interface works well, and sometimes
needless jargon  creeps in.
For example, the position of an object in a stack of objects is
referred to as z-order.
Even
worse, path commands
are called Boolean
operations
based on a loose analogy. Since Inkscape generally avoids even
well-established jargon -- calling kerning letter spacing,
for example --
these lapses
are all the more glaring.

Equally confusing is the association of the pencil tool with the
one for freehand lines and the pen tool with the one for curved and
straight lines; in many drawing tools, pencil and pen tools indicate
the appearance of a line rather than
its type.

Still, for the most part, Inkscape seems to be thinking about
interface design from the beginning, neither dismissing it as
unimportant or simply imitating
rival programs. This is a welcome change.


Objects and paths

One set of handles is for resizing
and reshaping (left), and one is
for rotation and shearing (right).

The impression created by the editing window is confirmed in the
details. It is not
that Inkscape has unique features. In fact, if you've used any drawing
tool, Inkscape's handling of objects and paths is instantly familiar.
Like other software in
this class, Inkscape includes a variety of tools for drawing basic
shapes. They
are on the left side of the editing window and consist of the usual
selection of rectangles,
ellipses, stars/polygons and spirals. As might be expected, squares are
made from rectangles, and circles from ellipses, by presing the Ctrl
key while drawing. When clicked, each object
has handles to move it or change its shape, as well as fill and stroke
dialogues and tools to
select, align, lock, and group objects. For convenience, objects can be
placed on separate
layers, which can be made visible or invisible depending on which is
more convenient for the working artist. 

So far, so standard.

What is different in Inkscape's basic functionality is the care taken
to make these functions easy to use. As much as possible, a user's
attention is kept on the drawing surface rather than on dialogues
opened from the menu. For example, when you click a second time on an
object you have already selected, a new set of handles appear for
rotating and shearing (AKA clipping).
Similarly, when two objects are stacked on top of a larger third one,
you can make a selection of the two objects without also selecting the
third one, and a dotted line around the selected objects makes it easy
to see that you've done what you intended.

Selected objects in a stack are
clearly marked.

At this point, Inkscape lacks the object styles that give
OpenOffice.org Draw much of its power.
However, its clone
feature,
which changes copies along with the original, offers much of
the same economy of effort. So does its Paste Style
function.

Another welcome innovation is the attempt to make different tools act
as much like each other
as possible. This tendency is especially obvious when comparing objects
(enclosed shapes) to paths (unenclosed collections of line segments,
straight or
curved). Both use
similar handles for manipulation, and have similar options for
selection. In particular, the node handles on paths closely resemble
the handles used to position a linear gradient. These similarities not
only help in learning basic functions, but aid make users in
understanding how objects can be transformed into paths and back again.
By contrast, most drawing programs make such a distinction between
objects and paths that new users are apt to be puzzled about the
relation between them. By paying attention to the interface,
Inkscape has successfully made its basic tools both easier to use and
more immediately
comprehensible.


Text and calligraphy

The calligraphy tool duplicates
writing on paper as
closely as
possible.

Aside from objects and path, text is the main area that Inkscape has
concentrated on developing so far. For several versions, it has
supported kerning for both blocks of text and individual letters
through the keyboard. Leading, the spacing between lines of text, can
be similarly tweaked. In the latest version, flowed text has been added
-- text that
changes size to fit a frame, and not, as the name suggests, text that
fills one frame and moves on to the next. Text in Inkscape can also be
converted to a path, a transition that makes the letters editable
through adjustment of the path nodes, and, incidentally,
eliminates the need for the text's font to be available on machines
where it is viewed.

Like FreeHand, Inkscape gives calligraphic text a separate tool. As
might be expected,
the calligraphy controls are designed to mimic the movement of a pen
over paper. Thinning, for example, refers to the change in a line's
thickness as the pen moves, and is affected by the speed with which you
draw a stroke. Similarly, the angle sets the angle at which a real pen
would be held, while drag imitates the resistance of a paper surface to
the pen. Since these are exact measurements, like the exact
dimensions of an object, they are an exception to the general interface
design.
Instead of being available in the editing window, they are set in
slider bars in a toolbar. Their exactness has the additional virtue of
making the calligraphy tool the
best choice for sketching on the computer.


Conclusion

As the version number emphasizes, Inkscape is still very much a work in
progress. Looking at similar products, it is no trouble
to assemble a wish list for future features. Connector lines that
automatically snap between two objects would make diagramming easier.
So would
3D objects and charting tools. Despite the attention already
paid to text, spell checking, hyphenation, and column tools are also
needed. And, even though SVG is a format
intended largely for on-line use, features that would allow
print designers to work in Inkscape, such as crop marks and the
ability to produce color separations, would
round off the feature set and make Inkscape the professional tool
that it is straining to become.

Text converted to path can be
reshaped as desired by moving
dozens of path nodes.

This list is not a criticism so much as an indication of how far
Inkscape
has to go. Inkscape's basic tools are in place, and some professional
work can be done in them. Still, choosing to work in Inkscape just now
would be largely an act of faith in the future.

But that faith is unlikely to be misplaced. Inkscape is developing
rapidly,
and the news that it has taken advantage of Google's
Summer of
Code

to employ four additional developers suggests that the current, rapid
rate of development will
continue, and may even increase. If the results of that future
development match what is already
done, Inkscape will not only fill a missing niche in the free
software desktop, but raise the standards for interface design and ease
of use while doing so.

Bruce
Byfield is a course designer and instructor, and a
computer journalist who writes regularly for NewsForge and the Linux
Journal Web site.

Click Here!