GIMP is 20 Years Old, What’s Next?


This week, the GIMP project celebrates its 20th anniversary. There has been a lot of excitement, but there are also some concerns about the project. Some reasonable, difficult questions have to be addressed. The main one is how the project’s going to deal with challenges it’s been facing for a while. Let’s take a look at some of them.

Obligatory disclaimer: I’m affiliated with the project, so you should always treat whatever I write on GIMP with reasonable suspicion.

If you’ve been following GIMP’s progress over recent years, you couldn’t help yourself noticing the decreasing activity in terms of both commits (a rather lousy metric) and amount of participants (a more sensible one).

“GIMP is dying”, say some. “GIMP developers are slacking”, say others. “You’ve got to go for crowdfunding” is yet another popular notion. And no matter what, there’s always a few whitebearded folks who would blame the team for not going with changes from the FilmGIMP branch.

So what’s actually going on and what’s the outlook for the project?

Project activity and features

Here’s something you might like to consider before you arrive at any conclusions: the major roadblock is the GEGL port.

That’s right: the very thing that is designed to right all wrongs and bring high bit depth precision, non-destructive editing, access to more color spaces etc. is the reason why the vast majority of the work is done by Michael Natterer these days.

Here’s what an interested contributor figures out after a bit of investigation:

  • Most cool new features need to based on GEGL, anything based on the old core is verboten.
  • A few features can only be released along with GIMP 2.10 at best. Noone knows when it’s out.
  • Nothing new is likely to be added to GIMP 3.0, because it will focus on just GTK+3 port to bring back Wacom support to Windows/Mac users. It also doesn’t have a release date.
  • Realistically, most exciting features would be part of GIMP 3.2 or later releases. There’s no timeline for those either.

What your average contributor takes from this picture is that he/she shouldn’t bother working on something exciting for GIMP, because it’s likely to be years before it reaches actual users.

Needless to say, there is not much love in contributing to the GEGL port: it’s technically challenging, as it requires getting a grasp of three codebases at once: GIMP, GEGL (the new engine), and babl (a little color format conversion library).

The exception here is porting existing GIMP filters to GEGL operations. It’s a documented process, there are examples to learn from, there’s a status page to follow the progress. So there have been over a dozen of contributors to this subproject, including coding superstar Thomas Manni. Thanks to their effort a lot of filters available in upcoming GIMP 2.9.2 are actually GEGL operations with on-canvas preview.

What’s the solution?

The good news is that GEGL port is actually nearing completion. Once v2.9.2 is out, the team is likely to start wrapping things up and polishing what’s already there. Features that aren’t complete are cunningly hidden on the Playground page in the Preferences dialog.

The next major milestone is likely to be improving performance (write first, optimize later) which isn’t at its best at the moment.

Realistically we could be looking at yet another year of development. How bad is that?

In my experience, development version has been rather stable for daily use for quite a while, but some operations take a lot of time to render. Which basically means that some users are going to be happy with unstable versions as long as releases keep coming, and some — less so.

To Windows/Mac users specifically it means more time with subpar Wacom support.

So for most of us who lack coding skills the solution is to sit tight and encourage developers to complete skinning the mammoth called GEGL.

Crowdfunding

Getting community’s money to pay for full-time development of GIMP sounds like a sensible solution to increase project’s activity, as witnessed by e.g. Krita users.

There’s, however, one thing that crowdfunding cannot fix: human resources.

If you don’t have a person to organize everything, you cannot have a successful crowdfunding campaign. It’s very nearly a full-time occupation: ask Boudewijn Rempt (Krita) or Konstantin Dmitriev (Synfig). GIMP doesn’t currently have someone to do it.

If you don’t have an actual developer to work full-time on the project, you can’t have a campaign at all. So far no existing contributor has volunteered to work on the project full-time.

Interestingly, it doesn’t mean there’s no crowdfunding for GIMP at all. The team has been encouraging private campaigns for quite a while, and there have been two cases that could be called a mixed success:

  • In 2012, Nicolas Robidoux launched a campaign on FreedomSponsors to fund his own work on new and better interpolation methods for downscaling and upscaling. Both proposed downscaling samplers have been implemented and available in GEGL for a couple of years, as well as exposed in upcoming GIMP 2.9.2. I’ve been exclusively using them for downscaling screenshots ever since the code made its way to GIMP in December 2012.
  • In 2013, Jehan Pagès launched a campaign to fund his work on symmetry painting mode. The feature is now complete and waiting to be merged into the main development branch.

Both campaigns were promoted by the GIMP team which explicitly encourages more developers to do this kind of fundraising.

The usability quest

The news post on the anniversary graciously says:

Since its public release the project has been evolving in many ways as a testbed for new ideas, which was considerably assisted by adding plug-in architecture.

It’s really a fancy way of saying “we added a bunch of features, because why the hell not”. Obviously, it couldn’t automagically lead to beautiful interfaces. Or, as some users would point out, this lead to one mess of a user interface. Granted, this has been publicly admitted by the team numerous times.

In 2006, through OpenUsability program GIMP got hooked up to Peter Sikking, usability architect currently residing in Germany. A painfully meticulous person, Peter led the team through the whole process:

  1. Defining product vision
  2. Identifying key areas to focus on
  3. Interviewing professional users and analyzing their input
  4. Writing specs and designing interaction.
  5. Writing actual code.

Most proposals coming from Peter have proven to work just fine for everybody, with two exceptions, both of which caused quite a stir:

  • Removing menu from the toolbox and creating a blank image window.
  • The great Save/Export divide that still causes short-living outbreaks of rage every now and then.

Despite overall fruitful collaboration, around 2012 the relationship between Peter and the GIMP team started cooling off, and in early 2015 Peter officially resigned.

Earlier this year, Jehan Pagès decided to reboot the GUI project. He took over gui.gimp.org and launched a new mailing list where existing usability issues could be tackled in a structured manner.

This hasn’t lead to any actual changes in code so far, but the structured approach roughly follows that of Peter’s team. The main issue here is that Jehan is currently busy with ZeMarmot animation movie which leaves him little time to work on user experience issues in GIMP.

There is no simple solution here either. Usability experts don’t appear out of thin air to work on free software for free (Peter was actually paying real world salary to his team out of his pocket to work on GIMP). Given that, it remains to be seen how much the team has learnt from Peter, and how much of that is applicable in further work.

I’m really bored now, what’s your TL;DR?

Like many free software projects, GIMP is facing some challenges that cannot be easily worked around.

Both decreasing activity, lack of centralized crowdfunding efforts, and little work on usability are mostly the result of lacking human resources. The latter can be eventually helped by releasing GIMP 2.10 that is completely GEGL-based (the port is nearly done) and GIMP 3.0 (GTK+3 based), which should encourage developers to contribute new features.

While all this sounds somewhat discouraging, upcoming GIMP 2.9.2 is bringing a lot of much anticipated features that will keep you busy while wrapping up the 2.9.x series proceeds.

Finally, to answer the question, what non-coding contributors could do for the project, allow me to quote the new FAQ section on gimp.org:

  • Post awesome art online and tell people you made it with GIMP.
  • Help new GIMP users in an online forum you visit.
  • Write a great tutorial on getting something done with GIMP and post it online or submit to GIMP Magazine.
  • Do a GIMP workshop in your local community.
  • Improve translation of GIMP and/or its user manual into your native language.

Simply put, the only way to make it right is to get busy.