Hacking:GSoC/2013/Ideas
From GIMP Developer Wiki
This page is the official ideas list for GIMP's and GEGL's application to Google Summer of Code 2013. We encourage students to come up with ideas of their own, though.
GIMP is the GNU Image Manipulation Program, and GEGL is a Graph based Image Processing Library. GEGL is being designed (mainly, but not only) to be GIMP's new core which will allow better parallelism, better memory management, non-destructive editing and higher bit depths.
For history of GIMP and GSoC, along with past ideas, see Hacking:GSOC_Archive, and for details about applications see Hacking:GSOC
The GSoC timeline for this year can be found at: http://www.google-melange.com/gsoc/events/google/gsoc2013
Contents |
Implement GEGL ops that GIMP need
Category: Plug-Ins/Scripts
Release of GIMP 2.10 is partially blocked by legacy plug-ins. Some of them have to be ported to GEGL operations, some can just work on GEGL buffers for now. For a list of plug-ins please refer to Hacking:Porting_filters_to_GEGL.
Minimal Student Requirements:
- Good C knowledge
- basic GObject knowledge
Slicing tool
Potential mentor: João S. O. Bueno, Alexia Death
Category: Tools, User-Interface
Note: this project, although very essential, requires complete UI specs which are not yet present, and therefore is considered less likely to be done, at least untill we have decent UI specs.
One of the most requested features by web designers and/or interface designers, is the addition of a slice tool. Currently slicing images inside GIMP can only be done in grids (using guides and the guillotine action) and you can't split just one rectangle in the middle.
Here is something that GIMP should be able to do:
-------------------------------------
| --------------- ---- |
| | | | | |
| | | ---- |
| --------------- |
| +---+--+
| | | |
--------------------------------+---- |
+------+
And why stop at rectangles? Maybe allow custom shapes using custom paths? Further ideas were suggested in the mailing list, at this post..
Minimal Student Requirements:
- Good C knowledge
- Gtk+/GObject knowledge in high level and experience in User Interface programming
Implement the combined selection tool
Category: Tools, User Interface
The combined selection tool should be an all-in-one tool for selecting regions based on a research made by Voralberg students in 2010.
Minimal Student Requirements:
- Good C knowledge
- Basic Gtk+/GObject knowledge and/or at least some interest in User Interface programming
Make GIMP more suitable for use in VFX pipelines
Category: Plug-Ins/Scripts
Upcoming GIMP 2.10 finally provides 16/32bit precision per color channel. However, this is not sufficient to make GIMP play well with other tools like Blender. There is a number of things, one of them — implementing a new GEGL-based GIMP plug-in for working with OpenEXR images. That would involve:
- writing the code for importing EXR with settings:
- exposure and gamma (reusable GEGL op is ready)
- un-premultiply option
- reading layers
- writing the code for exporting EXR with settings:
- format and type
- compression
- handling alpha channel
- storage type
- image region
- exporting layers
Another potential task to solve is implementing a way to quickly export sets of layers to a file, which is useful for working on variants of textures.
Minimal Student Requirements:
- Good C knowledge
- Highly recommended — some knowledge of GIMP's internals (core/tools/etc.)
- Highly recommended — being familiar with VFX workflows, OpenEXR
Improve support for importing and exporting PSD files
While existing PSD plug-in supports many essential features of the file format, fixing bugs and adding support for some missing features would make a rather useful GSoC project.
Note that until non-destructive editing is at least designed for GIMP, it isn't possible to implement support for layer styles or adjustment layers. The code, however, should be ready for that.
- PSD bugs in GIMP: https://bugzilla.gnome.org/buglist.cgi?quicksearch=product%3A%22GIMP%22+PSD
- PSD specification: http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/
Additional work could involve (better) support for resources, such as:
- Photoshop gradients (reverse-engineered)
- Photoshop patterns (merge/adapt existing PAT loader)
- brush dynamics in ABR files (reverse-engineered)
Minimal Student Requirements:
- Good C knowledge
- Highly recommended — some knowledge of GIMP's internals (core)

