"One of the most compelling reasons for using free or open
source software is that it provides an opportunity for the user of
the product to add whatever features he wants or needs. But the
ability to add features is constrained by a project's size and
complexity, and the nature of available documentation. So, while
GIMP is one of the most well-known and successful open source
software projects, its huge code base can be intimidating.
"To follow along, you should be familiar with the C programing
language. You should also know or be prepared to learn about the
Git versioning tool. The example in this article was created using
GIMP V2.7 on a Linux® environment (note that V2.7 is a
development branch and not a stable release). The spring 2009
version of Mandriva Linux was used in this article, but any version
of Linux should work fine (see Resources).
"You will be creating a tool based on an existing painting tool.
The tool created in this article is purely for instructional
purposes. For it to become an actual project that would be used as
part of the GIMP distribution, it would have to be thoroughly
vetted by the core GIMP developers and the UI architect."