[GSoC proposal] Airbrush and Calligraphy paintops
Fela Winkelmolen
fela.kde at gmail.com
Sat Mar 29 00:46:24 CET 2008
Here is an updated version of the proposal.
As usual, comments are wellcome =)
=========== begin ================
Implement real-media airbrush and calligraphy simulation paint operations in
Krita.
== Expected Results ==
Real-media airbrush simulation support:
* usable with a mouse and with graphics tablets both using a graphics pen and
an airbrush
* the engine will work with the following parameters which can be changed
dynamically while drawing: rate, tilt (only when the input device supports
it) and distance
* additionally it should be possible to configure the size (of the area
painted on the canvas), the level of atomization (size of the painted
particles), and how the particle density decreases nearing the border.
* the effect should be as much as possible similar to that of a real airbrush
Western calligraphy simulation support:
* usable with both mouse and graphic tablets
* the engine will work with the following parameters: width, thinning
(depending on the speed of the stroke, and optionally on the pressure of the
input device), angle, fixation, mass & wiggle (determining how the
tool "feels")
* I will also implement basic support for different contours of the quill, for
the scope of this project just a single line (not a sophisticated 3d
contour), but keeping possible future extension in mind
* the visual effect after this project will be similar to that currently in
Inkscape with in addition the possibility to change the contour of the quill
The user interface of both tools should be polished and usable. When using an
input device that don't support a parameter directly (e.g. rate of the
airbrush when using a mouse) there needs to be an easy way to change that
parameter while drawing, for example using the keyboard and/or the mouse
wheel.
== How I will proceed ==
1. Getting to know the architecture of Krita well and getting comfortable with
the code. Understand how the operations will need to be implemented (making a
rough design).
2. Write the code, the interface won't need to be usable yet at this stage,
it's just so that I can play with various options etc. Implement most needed
features.
3. Find out how exactly the various parameters should interact with the
behavior of the tool. This means mostly testing, and then adapt the code to
the results of the testing. My roomate, who draws a lot, can help me with
this, and I will try to get feedback from other people too (for example
posting on the mailing list).
4. Polish the user interface, making it as usable as possible.
5. Update the Krita handbook adding the sections relative to the new tools.
Obviously these phases won't be strictly sequential but there will be some
level of iteration.
== About Me ==
I'm studying Computer Science in Genoa (the curriculum I'm following
is "Graphics and Images"). I started to use Linux and KDE seriously three and
a half years back, it was then that one day I definitively removed Windows
from my system because I needed more space =) I learned myself C++ and Qt
over time, and am actively involved in KDE only since a few months, in
October I volunteered as maintainer for KNetWalk.
============ end ===============
More information about the kimageshop
mailing list