
Several new features were added to the Calligraphic pen to make Inkscape capable of the ancient art of '''line engraving'''. Traditional engraving is a very labour-intensive process, and while for a long time it was the only practical way of reproducing lifelike images in black-and-white print, about a century ago it was almost completely displaced by automatic halftone screens. However, line engravings have their characteristic charm, and there's no reason not to try to resurrect this art form with the help of Inkscape.
A brief visual guide to the new functionality can be seen on these screenshots:
http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving1.png
http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving2.png
1. Tracking a guide path with Ctrl
One of the most common operations in line engraving is '''hatching''' (or sometimes ''cross-hatching'' when several hatching grids cross): filling a space with many parallel straight or variously curved lines (usually of varying width to represent a gradual shading). You could try to achieve a similar effect with e.g. path interpolation (blending), but it is rather cumbersome and limited; manual drawing of hatch lines, on the other hand, is tedious and nearly impossible to do uniformly. Now Inkscape provides "assisted hatching" by '''tracking a guide path''', allowing you to hatch quickly and uniformly and at the same time giving you sufficient manual control over the process.
Here's how to do this. First, select the '''guide path''' that you will track. It may be another calligraphic stroke, any path or shape, or even a letter of a text object. Then switch to Calligraphic pen, select the desired parameters (line width, angle, fixation etc.) and, before starting to draw, press Ctrl. You will see a gray '''track circle''' centered at your mouse pointer and touching the closest point on the selected guide path. (If you have no guide path selected, a statusbar message will tell you to select it).
Now move your mouse close to the guide path, so that the track circle radius is equal to the desired spacing of your hatch pattern, and start drawing along the guide path. At that moment, the radius of the circle gets locked; now the circle slides along the guide path - and the actual stroke is drawn by the center of the tracking circle, '''not'' by your mouse point. As a result, you are getting a smooth stroke going parallel to the guide path and always at the same distance from it.
When the stroke is ready, release your mouse button (or lift your tablet pen) but '''do not let go of the Ctrl key''' because as long as you have it pressed, the tool remembers the hatch spacing you set when you started drawing. Now, you have just created a new stroke and, as usual with Inkscape tools, it gets selected instead of what was selected before. In our case, this means that the newly drawn stroke itself becomes the new guide path. Next, you can draw a second stroke along the first one, then a third one along the second, etc. Eventually you can fill any desired space with uniform hatching.
The attachment to the guide path is not absolute. If you stray your mouse pointer far enough from the guide path, you will be able to tear it off (the track circle turns from green to red) and move freely. This is intentional; this feature allows you, for example, to continue drawing a stroke past the end of a guide stroke, thus making your hatching cover a wider area than the initial guide path. Special care is taken to make such tearing off as smooth as possible and to suppress violent jerks, but this is not always possible; the general advice is to not try to hatch too fast. If jerking and unintended tearoffs still bother you, try increasing the Mass parameter.
Also, special code is in place to prevent flipovers - accidental jumps to the other side of the guide path. Brief flipovers are suppressed, but if you intentionally go over to the other side and stay there, eventually Inkscape will obey and your tracked stroke will also flip over to follow you.
Tracking a guide also allows some slight feedback by gradually changing the tracking distance in response to your drawing behavior. Thus, if you're consistently trying to draw closer or farther from the guide than the current tracking distance, the distance will correspondingly decrease or increase, so you will get a hatching that is slightly spacing in or out. (The effect is very slight, however, so as not to become a nuisance.) Also, note that since tracking follows the edge of the stroke, strokes of varying width (such as those tracing background, see below) will result in gradual change of the hatching shape as you proceed.
2. Tracing background by stroke width
There is a new toggle button on the Calligraphy tool's controls bar, '''Trace background'''. When on, the width of your pen depends on the lightness of the background under the stroke in each point, so that white translates into the minimum stoke width (1) and black translates to the maximum (which set by the Width parameter). This can work alone or in combination with pressure sensitivity, depending on whether the Pressure button is also toggled.
This feature allows you to not only hatch over an imported bitmap image or any drawing, but to do so automatically reproducing the highlights and shades of the background with your strokes becoming lighter and heavier as needed.
3. Thinning/thickening of paths with Alt
Even with background tracing, the visible lightness/darkness of a hatching may not correspond too well to your artistic intention. Also, with guide tracking, the ends of strokes are often far from ideal - they may be too blunt or have unsightly bends or blobs. This is where the new thinning/thickening function is indispensable.
While in the Calligraphy tool, press Alt. You will see a orange-colored circle indicating the area that will be affected; this area is 10 times the size of the pen when you draw (so you can change it by changing the Width parameter on the toolbar). Now select some or all of the paths (as with most tools in Inkscape, only selected objects are changed), for example by pressing Ctrl+A, and start '''Alt+dragging''' over the paths. Where you touch them, paths become thinner, as if melting away, up until total disappearance. Conversely, '''Shift+Alt+dragging''' makes selected paths thicker in places where you touch them.
As with the Calligraphy pen itself, the '''size''' of the thinning/thickening area by default depends on zoom; simply zooming in or out is often easier than adjusting the width if you want to cover a smaller or larger area. The '''force''' of the effect also depends on zoom (or in other words, it stays the same when measured by screen pixels, same as when you move and object by Alt+arrow keys). Also, if you have a pressure-sensitive tablet, the force of thinning/thickening also depends on '''pen pressure'''; tapping slightly produces gradual lightening or darkening of your drawing, while pressing heavily will work as a kind of quick "erasing" (with Alt) or "blackening" (with Alt+Shift).
Of course, thinning/thickening is very useful '''not only for calligraphic strokes'''. You can select any simple path (such as an ellipse converted to path) and start '''sculpting''' it, spawning smooth treacle-like appendages with Alt+Shift and melting them away with Alt. Unlike the "node sculpting" mode in the Node tool, however, this does not require adding new nodes to the shape or selecting any nodes. This new functionality is somewhat similar to the "Pucker" and "Bloat" tools in the latest versions of Adobe Illustrator, except that in Inkscape it works softer and is easier to control.
'''Known problems with thinning/thickening:''' (1) it is rather slow; (2) it quickly eats memory; and (3) it is sometimes buggy - thin calligraphic strokes may suddenly disappear or change their shape drastically as you're Alt+stroking them. For (3), it helps to undo the bad change and try again with less pressure on the pen - if you do your thinning in several light touches instead of one heavy press, usually you will be able to get the desired result without the buggy behavior. In general, however, all these problems stem from the livarot library that we use for geometric manipulation of paths. Fortunately, livarot is scheduled for replacement by lib2geom, a new library now in development, so hopefully these issues will be addressed then.
4. Misc features
* For consistency with other drawing tools, drawing with '''Shift''' in Calligraphy tool automatically '''unions''' the newly created stroke with whatever paths were selected (and selects the result). Thus, you can do a series of overlapping Shift+strokes to create one unioned path object instead of separate objects as before.
* To facilitate changing the Width parameter, the Home/End keys in Calligraphy tool switch you to the minimum (1) and maximum (100) width, correspondingly. (This is in addition to the Left/Right arrow keys that change Width by 1; remember also that you can press Alt+X, type any width, and press Enter.)

On 2007-April-11 , at 12:56 , Donn wrote:
Awesome, can't wait for the release.
You should grab a developement build then ;-)
It looks really great indeed, very creative, and the kind of feature once probably can't find in other software. Just out of curiosity: how did the idea occured to you? You needed to do some engraving like work and could not find a good tool for it? You just thought it would be "cool"?
I'll try to make a Mac build with it soon.
JiHO --- http://jo.irisson.free.fr/

Bulia, The Engravers Toolbox reads as if it will be awesome indeed. Currently I am still exploring the flood fill and loving it. I had to do some slice and fill in Xara several nights ago and it was a royal pain in the butt. It took ages to work out how to do it and even when I did I was not sure what the hell I had produced. When flood fill arrived I was blown away by its simplicity. It is so intuitive and obvious. It also started a very long thread on the Xara forum. I am sure that the Engravers Toolbox will start a similar thread and will entice more users over to the Inkscape fold. Congratulations again on this and of course your earlier contributions to Inkscape. regards, Erik. kaver@...68...

On 4/11/07, jiho <jo.irisson@...400...> wrote:
I just always loved old books :)
I think with computers, we have lost way too many capabilities and techniques that were taken for granted centuries ago. Of course many of them were originally just workarounds - for example, engravings were used not because of their look but because there was no other way to reproduce a halftone image. But on top of that practical need, they did look absolutely unique, and it's a shame that, apart from Inkscape, no modern software (to my knowledge) even considers this technique as a legitimate need of an artist.
We have simplified things a lot, and lost a lot in this simplification. Even the supposedly all-powerful TeX cannot reproduce, for example, some of the typesetting tricks that were common in old dictionaries.
In part, this is because until recently, computers were too weak to adequately reproduce the complex, feedback-driven traditional techniques where each step affects all subsequent steps. But in a larger part, I think, it's because modern computer programmers are too mathematically minded and too prone to equate correctness with simplicity. They always try to find a single elegant formula that will magically solve all cases. Which sometimes gives excellent results - but sometimes, results in programs that behave too clumsily and mechanically to be enjoyable.
I love math, too. But I'm not obsessed with it. If I feel that some ad-hoc, highly empirical coefficient can improve the subjective behavior of a tool, I add it without hesitation, even if the result will make a mathematician cringe.
As a result, I also like to consider problems that obviously have no simple mathematical solution and therefore escape the attention of more mathematically-minded developers. For example, it is quite obvious that at this time, it is impossible to create a fully automatic filter that would magically turn any halftone image into a decent-looking line engraving; this requires a level of AI beyond what is available these days. But I didn't stop at this realization - and just tried to think up some automatic tools that could make this, still largely manual, work easier.

bulia byak wrote:
CorelDRAW does consider engravers as a major target market. However, I am not sure if they see the word "engraver" in the same sense that you are talking about. For DRAW, engravers include people who do woodworking, 3D engraving or machining, signs or awards, etc. I'm not sure if the tools would be similar, nor have I used the tools for these tasks yet in either program (not sure if there is anything specific in DRAW for doing these things, or if they just try to ensure the tools available work for these applications). Just thought I'd mention it in case you want to find out what tools DRAW has and do some fun comparison :)
Gail

On Apr 11, 2007, at 7:32 PM, MenTaLguY wrote:
The first term that came to my mind was "woodcut".
I'm not sure if that covers all of what the new feature does, but it is a good starting point to look at the art.
"wood engraving" appears to be another related but different art form.

bulia byak wrote:
I prefer looking at this differently, mathematics (as well as computer science) gives you lots of tools to do amazing things. Unfortunately many people seem to make the mistake of seeing mathematics as a solution instead of a tool.
Anyway, I thought you might like to have a look at: http://pages.cpsc.ucalgary.ca/~isenberg/projects/hqrendering.html He uses non-photorealistic rendering techniques to produce high quality vector renderings (apparently to SVG) of 3D shapes, it's not 100% automatic if I remember correctly, but it's probably nearly as close to automatic as you'd want to get (in this area you'll always want to have some room left for tweaking the end result to achieve different effects).

On 4/13/07, Jasper van de Gronde <th.v.d.gronde@...528...> wrote:
Very interesting, thanks :) Although this and other similar things (like http://freestyle.sourceforge.net/) all work from a 3D model, which is a fundamentally different thing from a 2D image.

bulia byak wrote:
Really great stuffs Bulia! But for the "unions" option, I'm not sure holding the shift key is a good thing. It really hurt my finger when I'm working on a big draw... Also, It would be cool to have an option for the Calligraphic Tool in the Option Toolbar to set the boolean operation to whatever the user want --> none, union, difference (for an Eraser mode), division (cut mode), Intersection (paint in the shape) - instead of union only.
Ronan

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
Hi all,
This is a really cool extension to the calligraphic tool! (I just compiled Inkscape to test this ;-))
But I think, there are yet some problems with flipovers, especially with S-shaped paths and narrow curves. Note that in the attached examples, I didn't change pathside intentionally. (The mousepointer was never on the other pathside than the initial one.)
Go on with such cool features in Inkscape!

On 4/11/07, Loi <derloi@...1139...> wrote:
Well, consider that this feature is mostly intended for hatching, and hatching is rarely done with S-shaped paths :) I wanted to find a balance between the force of attraction and manual freedom. This balance can still be tweaked in one or another direction if needed, and I will take into account any feedback. In my testing, however, I was able to track a closed O-shaped path without any flipovers if I draw carefully and not too quickly.

bulia byak said:
I was just thinking, like, a few days ago, about adding/requesting something that would assist with my comic inking, namely something to help keep my stylus locked on my scanned pencils. :D The parallel lines feature looks lovely, too. I'm going to see how this works tonight with my comics.
John

On 4/11/07, John Bintz <jcoswell@...1414...> wrote:
Unfortunately, tracking a guide only works for a guide _path_, it cannot track a line in an imported bitmap. But try tracing it first with Edge Detection turned on - I recently removed extra blurring from edge detection, so now it gives a more detailed result than before.
By the way, now that I opened a new page of 0.46 screenshots on the site, it would be nice to have a screenshot from you demonstrating the use of paintbucket tool with some of your cool comics :)

Holy smokes, bulia! You've outdone yourself! I've been wanting something like this for a while, but I hadn't considered it could be taken so far...
-mental

Incidentally, if one wishes to reproduce the effect of traditional engraving more closely, it's best to draw in white on black. To that end, might it be best for the background tracing to choose the width based on the closeness of the background to whatever color the calligraphy tool is drawing with, rather than black specifically?
-mental

On 4/11/07, MenTaLguY <mental@...3...> wrote:
Incidentally, if one wishes to reproduce the effect of traditional engraving more closely, it's best to draw in white on black. To that end, might it be best for the background tracing to choose the width based on the closeness of the background to whatever color the calligraphy tool is drawing with, rather than black specifically?
Yes, I had that thought too. Will try.

WOW! this is one hell of a feature! I am amazed by the simplicity of the idea, and the power of the function! AFAIK, no other software on the market has such a feature (at least out of the box...)
I'll keep on playing with it and will report any bugs/enhancement ideas.
Thanks!
Molumen
----- Original Message ----- From: "bulia byak" <buliabyak@...400...> To: "inkscape-devel" <inkscape-devel@...6...>; "Inkscape User Community" inkscape-user@lists.sourceforge.net Sent: Wednesday, April 11, 2007 5:36 AM Subject: [Inkscape-user] NEW: Engraver's Toolbox
I'm protected by SpamBrave http://www.spambrave.com/
participants (14)
-
Bryce Harrington
-
bulia byak
-
cedric GEMY
-
Donn
-
Gail Banaszkiewicz
-
Jasper van de Gronde
-
jiho
-
John Bintz
-
Jon A. Cruz
-
kaver
-
Loi
-
MenTaLguY
-
momo
-
Ronan Zeegers