One of the first areas of focus was to add menu items and keyboard shortcuts for the commands it provides. Mentalguy had just recently finished up a massive redesign of the user interface, and so knew the exact place to slip it in. Likewise, Bulia had been hard at work creating a thorough set of key mappings for giving experienced users fast shortcuts for productivity, and found appropriate keys to map the new commands to. Mentalguy's attention to menus, coupled with Bulia's shortcut key work demonstrate the value placed on usability for this tool. Both men are artists at heart, so place great importance on making the tool as useful to real users as they can.

Once the basic functionality and usability of the newly merged booleans code was established, other users started testing the feature in real world situations, and identify and shake out bugs with us.

Meanwhile, the development team turned their own focus deep into the code itself. With Fred's help, they isolated and repaired lingering quirks and bugs. Our more mathematically inclined developers dug into the algorithms in search of ways to relate them to similar functionality elsewhere in Inkscape. By the time we released 0.37, the booleans code was solid.

Even better, Fred stayed on and worked with us to optimize the code's performance and derive new and exciting features on the foundation he built — such as commands for offsetting, division, and simplification of paths.

In many Open Source projects, such a windfall would be rare, but Inkscape has been fortunate to receive many major advancements from the contributions of newcomers. This is evident when one has used the program for a bit and notices that beyond just having all the usual drawing capabilities, there's a huge number of thoughtful-yet-modest behaviors hidden away, that combine to make Inkscape a pleasure to work in. Grid and guideline snapping uses a tunable "gravity" style rather than absolute snapping. Objects can be nudged a pixel at a time, for when you need to get that shape just right. The zooming and auto-scrolling of the canvas are direct results of feedback from users and their ideas of how things "should" work. There is even an XML editor built in, for those power users who like to see exactly what they're getting; this tool allows direct access to the drawing's underlying DOM model. SVG is XML, and Inkscape is not ashamed of that fact.

The Future

Work continues strong on Inkscape. A very interesting new feature that will appear in the 0.39 release is clones. Basically, you can create a copy of a given object that inherits its properties, so that if you change the original, the clone is also modified accordingly. As an example, consider creating a flower with eight cloned petals rotated around the flower's center; tweaking the original petal causes all the cloned petals to similarly change. This feature actually comes straight from the SVG spec, so is a capability required for SVG compliance, but nobody knows of any other drawing apps that have a drawing operation quite like this.

Another feature still in progress is ECMAScript (better known as Javascript), currently being developed on a branch from the main codebase by Ishmal. This promises to provide document-level scriptability, including simple programmatic animation.

There's also a new
Open Clip Art Library established to collect and promote SVG clip art for use in any of the open source drawing tools, and we hope to build in Inkscape strong support for browsing and using this library.

The latest contribution that I think will have widespread and exciting ramification's was brought to Inkscape quite out of the blue by Mike Hearn. Mike's project, called AutoPackage, seeks to solve the perennial problem of easily installing software on Linux. It wrappers the underlying RPM, Debian, etc. systems with a friendly GUI front end, similar to what's used on Windows. Mike's hoping Inkscape can help be a good proof of concept for his work, and we're looking forward to gaining an extremely easy installation mechanism for non-technical users.

I know how rare it is for a project to get very much outside participation, and it emphasizes just how remarkable and invaluable each of these contributions are. To me, this type of sharing is what makes Open Source so cool. Fred's Booleans patch was the first of many such contributions for Inkscape. And who knows what surprise new feature will show up in our mailing boxes tomorrow!

About the AuthorBryce Harrington is a founder of the Inkscape project, and a long time open source developer. Professionally, he's a senior performance engineer at the Open Source Development Labs. He wishes to give thanks to all the 'scapers who lent an eye to reviewing and contributing to this article.