ArticleIntroducingInkscape0.40
This is intended to be a PR piece to support the 0.40 release and outline a few of the key features in a conversational style, to supplement the release notes, and to drum up interest in participating in Inkscape development.
Introducing Inkscape 0.40
The November 2004 release of the Inkscape drawing application brings to users a number of oft-requested features. In this article we'll review these features and briefly demonstrate their usage and potential. It's also important to emphasize Inkscape as a participatory project, so we'll close with some things you can do to help nudge the ball forward.
Inkscape Tutorage
If you've ever used a vector drawing tool before, you'll probably find the buttons and controls pretty obvious. If not, or if you want to learn the tool in detail, Inkscape includes several handy tutorials under the Help menu item. While these don't cover every aspect of Inkscape, the Inkscape team has made great strides at fleshing them out. In this release, the team has added new tutorials about the Shape and Calligraphy tools, the "Potrace" tracing feature, and updated other tutorials with new sections and more detailed information.
It's worth noting that the Tutorials themselves are created in - you guessed it - Inkscape itself! In fact, as you become skilled with Inkscape and develop new tricks and techniques, you're strongly encouraged to write them up and contribute them to be included in future tutorials. (If you speak another language than English, the project also maintains translations of the tutorials, so do consider contributing a translation or two!)
Layers Feature
<img src="/wiki_uploads/layers01.png" alt="Layers" align="right"> The principal feature for this release is the addition of layer management to Inkscape. This oft-requested feature has required a good deal of internal rework to support, but leverages SVG's "Group" mechanism to allow seperation of shapes, text and paths onto different layers.
The promise of this feature is to allow sets of shapes to be hidden or visible, or to be "locked" from editing so the artist can focus on one set of items at a time. This capability should hopefully enable artists to create much more sophisticated artwork than has been possible in previous releases of Inkscape.
<img src="/wiki_uploads/layers02.png" alt="Layers 2" align="left">
TODO - Demonstrate usage
Text On Path
<img src="/wiki_uploads/textpath01.png" alt="Text on Path Screenshot" align="right"> Another long-requested feature is the ability to place text on arbitrary paths. Inkscape 0.40 brings this feature to use in a big way.
TODO - Demonstrate usage
Bitmap Tracing
An exciting (and unplanned) feature new to this release is the ability to vectorize bitmap, or 'raster', images. Tools had been available since well before Inkscape to do this, but until now it had to be done manually and separately from Inkscape. With a smack to the head, one of the developers realized it'd be easy to add this feature directly within Inkscape, and so it was. We recommend checking out the tracing tutorial under Tutorial section of the Help menu.
TODO - Demonstrate the feature
Already, we've seen some rather stunning artistic applications of this tool, and we're looking forward to seeing what use people can make out of this new capability.
POV Raytracing
Another intriguing addition in this release is the ability to export SVG as inputs to POV Ray, to be able to generate 3D renderings of your 2D drawings. This is sort of a proof-of-concept-ish feature; we're curious what folks think of it; if you find an interesting use of it, please show it off and give some ideas for how to make it even more useful.
TODO: Example please
Randomized Stars
The ability to 'randomize' the shapes of stars was another feature added due not to user requests but mostly just because it could be done. We don't know how useful the feature is, but it's terribly fun to play with. Again, please show off if you create something cool with it.
TODO: Provide an example image
Calligraphy
In past releases of Inkscape, the Calligraphy Tool was not really considered a very useful tool, but with a few tweaks, it's been turned into something quite powerful.
After clicking on the Calligraphy Tool, look at the controls in the Tool Control Bar. Here's what the different controls do:
Width: This is the width of the stroke to draw. Think of it as the width of your pen's nib.
Thinning: This controls how much the stroke narrows when you draw the pen quickly. This emulates brush-like behavior where slow strokes produce fatter lines than thin ones. For a perfect calligraphy style, set it to a value of 0.00.
Angle: This is the angle (in degrees) of the nib compared with horizontal. Change this to emulate different ways of holding the pen.
Fixation: This controls whether the nib angle varies with the stroke direction. Essentially, with a value of 1 it makes the nib behave like a carefully held calligraphy pen, and with a value of 0 it works more like a felt pen.
Mass: This controls the pen's "inertia". Essentially, it lets you control how smooth the stroke will be, at the expense of responsiveness. With a value of 0 your stroke will be jagged and irregular, capturing your every twitch. With a value of 1 the pen feels like you're dragging a boat through water, but the stroke is quite smooth and regular. If you find the pen doesn't "feel right", try fiddling with this parameter - each artist will find a different value to be most comfortable.
Drag: This is the resistance to movement of the pen. A value of 0.50 will feel most natural; lower values mean that slight motions will produce large, sweeping curves; higher values make it feel like you're writing in clay, and it takes very strong movements to produce much of a line. This may be useful for altering the artistic style of your lettering.
While the Calligraphy Tool has always been available in Inkscape, the variety of controls made available in this release should hopefully give you a lot more to experiment with, and make this tool much more powerful for your work.
And Much More!
<a href="/wiki_uploads/screenshot.png"><img src="/wiki_uploads/screenshot_thn.png" alt="Screenshot" align="center"></a>
The above should cover most of the major changes you'll notice in Inkscape, but is far from exhaustive. Many small usability tweaks, performance enhancements, bug fixes, and code cleanup have also gone into this release. Most of these are identified in the Release Notes, but of course the most fun is to discover them while using the tool!
- -)
You'll notice some changes in layout of a few dialogs, for instance. Copy and paste, grid, use of current style, the statusbar, XML editor, and so on have all received some attention and show off new ideas that users and developers have had lately.
In addition to the controls mentioned earlier, many shapes have new controls and ways of manipulating them. See the Shapes tutorial for a full overview of the capabilities.
<img src="/wiki_uploads/preferences.png" alt="Preferences" align="right"> A most convenient feature was added to the tool buttons - double clicking on them brings up the preferences for that tool. Quite handy!
In the past, Windows users have lagged behind Linux users for Inkscape functionality due to Windows-specific issues that the developers hadn't been able to address. In this release, focus has gone into helping get those issues figured out, so hopefully Windows users will find Inkscape as stable as the Linux users.
Participation
Inkscape is different from commercial software that you may be used to, in that it is a grassroots-driven, open effort to create the tool. Everyone that works on it does so as a volunteer. There's no budget to worry about, no salaries being paid, no quarterly sales forcasts. Everyone participates for the simple reason that they wish to have a great SVG-based drawing tool freely available on Linux, Windows and other platforms.
The implication of all this is that unlike commercial software, where your role starts and ends at the cash register, with open source projects you have an important role to play within the process. You've heard the phrase, "Time is money," which you can interpret to mean that your time is as valuable as your money. In an open source project like Inkscape, your time can actually be much more valuable than money - your efforts can directly assist in improving the software for everyone, whereas money usually has to be translated into something that benefits the project, so it's more of an indirect process.
Of course, not everyone can afford to dedicate as much time as the core developers have to Inkscape, so you probably wonder how you could contribute a small amount - perhaps no more than a couple hours on just one evening - helping improve Inkscape without getting committed to something huge. Fortunately, there are many ways to help.
First and foremost is to simply spread the word. Inkscape doesn't have a marketing budget, nor does it put out any advertising. Instead it depends on users to share their experiences with others, help people install it, and show them how to use it. Figure that for every ten people you help use it, you'll gain a convert that will contribute to Inkscape in some way some day.
Second, and probably even more important is to strengthen the feedback loop. Since its release, Inkscape has benefitted immensely from the bug reports, testing, and feature suggestions from hundreds of users. These efforts by users help us identify breakage and issues in new code swiftly, and has helped Inkscape increase in quality faster than expected. Because of this powerful, tight feedback loop with the user community, Inkscape has achieved a level of stability that commercial software only achieves through expensive manual regression and usability testing efforts. Inkscape instead benefits from the "Many eyes make bugs shallow" effect that comes from good open source practices. So bang on the tires, peek in all the nooks and corners, and if you see something that's obviously wrong, send in a report! Or review the existing reported bugs and see if you can replicate them; if so, add some notes about your own observations, to help give the programmer some additional evidence to help narrow in on the problem.
Third, as a skilled user of Inkscape your Inkscape talents can be used directly to help the software in a variety of ways. As mentioned above, tutorial writing is an easy way to share your skill with other users. Inkscape also has a sister project, the Open Clip Art Library (www.openclipart.org) where you can share templates, clipart, patterns, and other such works with users. This is especially valuable for the less artistic amongst us, and opens usefulness of Inkscape (and other SVG tools) to a much wider audience - even programmers!
Fourth, Inkscape maintains a wiki for discussing feature development and documenting various aspects of the project. If you're into wikis, please consider joining in on the wiki discussions. Help with scoping out new architectures, fleshing out feature suggestions into plan of actions, and turning the rough notes into finished forms.
Finally, if you can program there are a variety of ways of helping out in even small ways. In addition to working on the codebase itself, Inkscape supports "extensions", which are simple scripts or commandline tools to provide functionalities to Inkscape. You can find these tools in the Inkscape 'share' directory (e.g. /usr/share/inkscape/extensions). To add a new tool, you create an XML file with a .inx extension to register it with Inkscape. These tools should accept SVG on standard in and produce a different file format to standard out (or vice versa). Browse some of the examples and think about other file formats worth supporting in Inkscape, and write up your own script.
"Draw Freely."
To sum up: Lots of cool new features, hope y'all like it, and do think about donating a few spare cycles to making the tool better.
We've got a lot to look forward to in the future. In the near to mid term, we expect to reimplement the UI in C++, investigate some performance optimization ideas, and of course continue adding many more features and fixes. Longer term, we want to make Inkscape better suited for both advanced artistic use as well as basic technical drawing use (already we have an eye on a Visio VDX-to-SVG converter, mmm...)