Just like last year, one of the tasks that we want to offer students
in this year's GSoC is porting GIMP image processing code to GEGL. This
is a very interesting task and if you are a student with experience in C
programming and an interest in computer graphics, be sure to consider
GIMP is being modified to use a new image processing library called
GEGL. This will bring much
requested features to GIMP such as support for more precision in image
manipulation operations, and better support for different color formats.
For this, we have to rewrite a lot of the image processing code in GIMP
and move it to GEGL. The resulting code will do more or less the same
things, but will work with a different data format, and inside a
different framework (GEGL).
There are many such operations (in the main application and in
plug-ins), each doing something entirely different from another. Porting
each operation is a relatively simple and straightforward task, but it
requires a good command over the C language and ability to review and
understand unelegant code.
As this is a large task, it could be sub-divided into smaller tasks
(groups of operations) to be taken up by more than one student.
- We want to see a demonstration of the student's ability to review C
code in the context of the GIMP plug-ins.
- The student should be able to work with computer graphics code. Most
of the code is raster graphics related with a bit of computational
- As part of this task, much of the existing code may have to be
entirely rewritten. But this could be smaller and more elegant in many
cases than the existing GIMP code, as GEGL ops are written using
floating point in a well-defined colorspace.
- The student's work will include coding, writing testcases, profiling
and optimizing performance, and checking for bugs.
- We are looking for students who are committed to finish their work
and communicate eagerly with their mentor. We will assist as much as we
can. Though the student is expected to have a background in C
programming, we will teach the student how to use various programming
tools if necessary.
The student is asked to subscribe to the gimp-developer
mailing list and send the following:
- Your background as it applies to this task (please don't send any
- A code review and algorithm description of some GIMP plug-ins
(e.g., cubism, fractal
- A code review and algorithm description of the following GEGL op:
- Sample implementation of a new GEGL op. This could be anything of
your choice, even Hello World. Please send it as a patch against the
GEGL master branch.
If you need any help with any of these tasks, please ask on the
gimp-developer mailing list,
or by chatting in the #gimp IRC channel.