What hasn’t happened to GIMP 2.8 yet

What hasn’t happened to GIMP 2.8 yet

I've just realized that today is exactly a year after the epic “What happened to GIMP 2.8” story that caused quite a stir. Could there be an even better overview? Challenge accepted :)

In this blog post I'm going to summarize what was going on with the project in 2011, including some rather fancy side projects, and what plans the team has. And since it's the end of the year anyway, let this be the first 2011 retrospective post.

First of all, I have to admit that relying on the schedule in the original article wasn't a terribly great idea. The schedule was rough and could only cover features and bugs that were known at the time. Bugs that were yet to be discovered couldn't be taken into consideration.

The “schedule” was quite honest about all of that. Still, the estimation didn't quite give the right idea. After all, GIMP 2.8 is still to be released, albeit it's weeks rather than months.

So what actually happened to GIMP during the year, where the project is now and what's ahead? Let's start with changes.

UI and features

Most new features were written during 2010. In 2011 development was focusing on tying up loose ends.

Martin Nordholts found the time in his busy schedule to finish what was planned for this version regarding single-window mode. Since v2.7.3 the application saves and restores it, and since 2.7.4 all image tabs have a Close button.

Alexia took a closer look at GIMP Painter, the fork released in early January, and nicked some of its features such as line smoothing. Mixbrush hasn't been backported yet, and the prerequisite for that is a complete GEGL based painting system. This is because the team banned development of new tools that are based on the old image processing core. We'll talk of it later.

Michael Muré worked with Peter Sikking, the team's UX expert, to improve the Cage transform tool that he created during Google Summer of Code 2010. That required quite a lot of internal changes, but thanks to that Michael was able to implement rubberband selection of cage nodes, as well as editing of cage after an initial transformation. The tool itself was moved from a Git branch and is going to be part of upcoming v2.8.

Google Summer of Code

This year Google Summer of Code program had quite a twist towards GEGL, the new state of the art image processing core for GIMP.

Warp Transform tool was worked on by Michael Muré. This is a rewrite of the iWarp filter that allows doing a kind of sculpting on pixels with a brush. The tool is much like Photoshop's Liquify filter, except it works directly on canvas. The tool is based on GEGL and lays foundation for GEGL based painting system. Here is a somewhat synthetic example:

Seamless Clone tool was a project by Barak Itkin. The code is based on a SIGGRAPH 2009 paper by Zeev Farbman et al. that explains how to paste one image into another in a way that it completely blends into it. This is also a GEGL based tool, it still needs work to make it more robust, but it's currently scheduled to be part of GIMP 2.10.

Robert Sasu ported over a dozen of GIMP filters to GEGL operations. To name a few: Color to alpha, Color rotate, Convolution matrix, Polar coordinates, Red-eye removal. He also implemented a new GEGL operation that uses LensFun library to fix various lens distorsions. Robert uploaded a gallery of examples.

The OpenCL project in GEGL was already covered recently. To sum it up, Victor Oliveira implemented basics of GPU-side rendering and computation. He is now sponsored by AMD to bring OpenCL support to an even better shape next year.

Finally, Enrico Schröder rewrote the existing size entry widget to make the code cleaner and introduce a new feature. Now when you change e.g. image size, not only you can freely mix up units, you can also see them inside the entry box.

Usability researches

In February the team announced that Peter Sikking started looking for interns to work on GIMP's usability. Very few people turned up, and the only real candidate canceled the internship due to getting a job.

However later Man+Machine Interface Works, the company co-founded by Peter, got a new employee, Tobias Ehni, whose job was to do some work on UI. Tobias conducted several user interviews, mostly with people who do digital painting (a report by David Revoy is here).

In June Peter Sikking did another interaction design course at the FH Vorarlberg. Four groups of his students worked on prototyping UI for the Warp Transform tool. The spec hasn't been written yet, but this is clearly something that should be done for v2.10 when work on merging GSoC2011 projects starts.

Latest report from Peter is that Dominique Schmidt joins the project to work on GIMP's UI design in the beginning of 2012. Subject of the research is still to be decided on.

Foundations for future development

Throughout the year Mitch Natterer and Mikael Magnusson worked on porting GIMP to GTK+3. This is going to significantly improve rendering performance, especially for painting, and fix some serious issues (more on that below).

During the summer Mikael worked on the Unified Transform tool. It's currently more of a playground, but it's also a decent start to make the existing set of transformation tools not suck. As of now it isn't possible to say when this work will be completed.

Few months ago Martin started working on on getting GIMP to use GEGL buffers directly which is a further step in bringing high bit depth support and non-destructive editing to GIMP. He temporarily stopped working on that, but the code is in public Git repository, so the work can continue.

The current brush engine relies on the old image processing core, and thus porting Mixbrush and textured brush from GIMP Painter would only delay the switch to the state of the art architecture. The latest GSoC project by Michael Muré, the Warp Transform tool, is a major step towards moving to GEGL based painting.

So, what's, uh, the plan?

Around spring the team decided on a feature-based plan that looked like this:

  1. Release GIMP 2.8 as soon as possible.
  2. Release GIMP 2.10 with internal changes + GSoC2011 projects.
  3. Release GIMP 3.0 with GTK+3 based UI and high bit depth support.
  4. Start implementing non-destructive editing etc.

This plan is being revised now, and it's quite possible that the team won't wait for high bit depth support to be finished to release GIMP 3.0. This is because GTK+2 is broken beyond repair with regards to advanced input devices, and GIMP 2.8/2.10 are going to have a broken support for Wacom tablets.

So it looks like there will be no changes to plans regarding GIMP 2.10, but GIMP 3.0 will be v2.10 + GTK3 based UI with graphic tablets support that works. Of course, things might change. We'll just have to wait and see. Or, better, help the team.

There are very few bugs left to fix for 2.8, most commits in the Git repository are translation updates. The team is currently dealing with end-of-year deadlines at their jobs and waiting for all translation updates to land. Then it's mostly release notes and splash screen that have to be done.

The v2.8 release cycle was way too long. To avoid that in the future the team is now using Git branches for development of significant new features. That makes development process less vulnerable in case a major feature is half done due to a developer's leave of absence.

What's up with the team

A year ago one of the key eye-openers for the masses was the low amount of developers working on the application. I'm talking about the “2.5 developers” meme. Unfortunately not much has changed since then.

The vast majority of commits is still on Mitch Natterer. Martin Nordholts moved further down to the 3rd place, while the second place is now taken by Mukund Sivaraman. The amount of work is still rather disproportional.

Some developers like Mikael Magnusson and Massimo Valentini became more involved with the project, but the project need five times as many new developers to balance things up.

If you are interested, the key areas of work would be:

  • finishing the switch to GEGL buffers, so that GEGL can finally be used directly;
  • finishing the painting core in GEGL to make deep painting with GIMP possible;
  • porting other GIMP filters to GEGL operations to boost release of GEGL based version of GIMP.

Scared already? :) Let's go for the fun part.

Side projects

Apart from tons of new and updated plug-ins and scripts there were three notable side projects in 2011 that are essentially friendly forks.

GIMP Painter is the one I already mentioned before. It's not a new project, but it got a major update with changes in UI and some other painting related features (if you are not a fan of cheaptunes, temporarily mute the sound for the video below).

Hsiang-Ting "Tim" Chen, Li-Yi Wei and Chun-Fa Chang implemented internal version control system for images in GIMP. For that they devised their own direct acyclic graphs (DAG) engine that represents spatial, temporal and semantic relationships between your editing operations.

The paper on that was published at SIGGRAPH and is finally available now. Tim is currently working on his next project that is built on top of it. It's about summarizing user's editing history using some machine learning algorithms, and the good new is that he's interested in rewriting the whole thing to make it usable in upstream GIMP.

The third “fork” features an advanced foreground extraction tool by Jan Rüegg. The original tool was first introduced in GIMP 2.4 several years ago. The problem with it was that it was missing a refinement brush to separate fine features from background. Jan introduced a new matting method that effectively ditched the need for a refinement brush:

It was too late to add the tool to 2.8, and the ban for new stuff based on old core was already in effect, so someone has to port it to GEGL before we can see it in upstream GIMP. However there is a Windows installer available from partha.com that contains this fork.

Interestingly, there was a Google Summer of Code 2010 project to add refinement brush, the student finished the project, but didn't manage to provide the code that compiled.

There are two notable side projects that I couldn't possibly not mention even though they don't deal with core features.

Resynthesizer, an amazing old GIMP plug-in, was given a kiss of life by Lloyd Konneker. The plug-in can make objects disappear thanks to smart filling of a selection with bits from the surrounding area. It's quite a bit like Photoshop's Content-Aware Fill except it was implemented years and years before Photoshop.

Lloyd updated the code and rewrote some of the additional scripts in Python. The new version was made available in April. Lloyd has just finished a threaded implementation of the plug-in that is supposed to work faster. Stay tuned for updates.

The last important project I'd like to mention here is GIMP Paint Studio, a project by Spanish painter Ramon Miranda. Along with other folks like David Revoy he created this excellent package of additional resources to improve GIMP as a tool for digital painting. G-P-S v1.5 was released this year, and Ramon is interested in updating it to match new features in GIMP 2.8.

As a closing note Id like to once again remind that GIMP is public project, and its progress is directly affected by how much the public is involved with improving it.

Was it useful? There's more:

34 Comments

Leave a comment
  1. very informative post, for me GIMP is very promising opensource software.

    IMHO it’s time to call full time developers for gimp, and let the community funding them.

    Regards

  2. It would be a good idea if the GIMP team started something like the Blender Foundation, instead of producing animated features they could produce art books which would help fund development.

    There are many concept books out there that are simply full of high-quality art work, and they are good sellers, and I think a lot of people in the community would be happy to buy a book that is full of very high-end, professional quality illustrations, paintings, and so on that a) provides a nice book to have on the coffee table etc b) helps fund GIMP development by firstly providing income, and secondly by allowing the artists producing the work to give direct feedback to developers about what works, what doesn’t, and what is required to make work flows easier etcetera.

    They could also help with testing and bug reporting.

  3. Alexandre Prokoudine 28 December 2011 at 6:51 pm

    Daniel, personally I’m all for a foundation :)

    The team, however, is currently hesitant as they have no experience or will to deal with bureaucracy and paper pushing.

    There are options, of course (like SFC), and that needs discussing.

  4. I totally agree.  One small example is gimp.org actually has a list of suggested books, linking to Amazon, but they’re not affiliate links!  That microscopic front-end change could be putting money in this GIMP’s pocket!

    I work with affiliate marketing and blogging a lot, and would love to help implement some funding methods for the program.

  5. How about a libre graphics foundation? ;)
    Not only for Gimp but open for all libre graphic projects…
    That could make a tremendous impact on the f/loss world!

  6. Where do I sign up?  If we could get a team of 5-10 people working together to help fund this, we could really begin to get some serious support for this.  I’d be happy to kick some ideas around, and share some of my knowledge of the demographics that are commonly using Gimp.

  7. Sorry, that was horrid phrasing.  I meant “5-10 people to help market the funding of this.”

    Although, honestly I hate the word “market.”  Something like Gimp doesn’t -need- iron-fisted marketing, just someone to point the users to the best books and such online.

  8. Alexandre Prokoudine 28 December 2011 at 11:25 pm

    @David That’s another idea that was discussed in create@ a couple of times, but so far hasn’t got anywhere.

    @Alex I’d say, a smart social networking based campaign, eh? OTOH collecting decent showcases would be a prerequisite, and that’s by no means an easy thing to do.

  9. @alexandre That’s exactly right.  If you got 5-10 people working together building content via blogs, and SocMe about different aspects of Gimp, you could help raise awareness of it’s uses and build a large and loyal fan base that could not only purchase affiliate products that support the program, but also become a list of power users to get feedback on how to best-improve the program from the people who know best.

  10. I’d love to contribute to the Gimp project since it’s software I use on a daily basis, but I feel my skills would be misplaced. I’m stronger in JavaScript than native languages, and I’m a better designer than I am a coder.

  11. Alexandre Prokoudine 29 December 2011 at 8:09 am

    Andrew, one of the ideas is to make JavaScript another scripting language for GIMP. And the team will probably do a website design contest closer to v3.0 release.

  12. Oh really? Well I could definitely help with that. Are there any kind of general usability/interaction design roles that need filling?

  13. Alexandre Prokoudine 29 December 2011 at 8:39 am

    Regarding gimp.org design, you mean?

    BTW, you could be interviewed by Tobias as web designer.

  14. Well, for anything, the program if you’re in dire need.

    Interviewed in what capacity?

  15. Alexandre Prokoudine 29 December 2011 at 8:47 am

    I’ll mail you contacts :)

  16. Wow. Such a nice article, makes me all giddy about the awesome things that are happening beneath the surface.

    Painting in it is already a joy, all the talk of GTK3+ is just icing on the cake.

    @Alex
    I hope you can get it going :D

    I too will look for ways to help :)

  17. Alexandre Prokoudine 29 December 2011 at 10:33 am

    @Otto Is painting with a 500-1000px brush that isn’t slow really just an icing on a cake :)

  18. @Alexandre Well, no. Although I did manage to work despite the lag for large brushes. Stop that, you are making me even more anxious for it haha

  19. Ah I can’t wait to grab all of those tools :D Mixbrush, textures for brushes, unified tranform, GTK+ 3,  :D

  20. I agree with David, well Alexandre it time for LGW to be the foundation that help libre graphics, I believe that Libre Graphics community is huge and spread across the world.

    So, start small with big impact. Well,easier said than done but believe, we..as community, got your back.

    Cheers.

  21. Change the name to Google Image Manipulation Program and get a buttload of money from them.

  22. Kevin Brubeck Unhammer 03 January 2012 at 2:23 pm

    Thanks for the report, exciting stuff!

    I do hope gimp-matting gets a GEGL port soon, would be wonderful to have something like that.

    And +1 on the Foundation – I have no idea how that stuff works, but even just being able to have some official non-profit status so that they can profit (heh) from affiliate links and such (amazon, cafepress, etc) should help. There must be Someone Out There who likes this bureaucracy stuff …

  23. Alexandre Prokoudine 04 January 2012 at 10:21 am

    @Kevin Last thing I heard from Jan is that he has some GEGL based work on matting in progress.

  24. Maybe this is a silly question, besides a sort of “blasphemy” (so I ask your pardon, fist of all): you don’t even consider using QT instead GTK, right?


    Thanks for your marvelous work, when Gimp finally uses GEGL for everything I could say ciao to PS for ever.

  25. Alexandre Prokoudine 09 January 2012 at 1:29 am

    @Marcos You know what GTK+ actually means, right? :-) What was your question again? ;-)

  26. Hehe, yes I know, that’s why I called my question a “blasphemy”. Only… well… no intention to offend anybody, but QT seems so much ahead… Ok, let’s do like if I had never posted such a question, hehe.

    Thanks and regards.

  27. You state above: “Advanced foreground extraction tool by Jan Rüegg… there is a Windows installer available from partha.com that contains this fork”.  I went to the link you provided and installed G’mic in my GIMP, but I don’t see any function in it to do a foreground extraction?  Is there something else I need to do?

  28. Alexandre Prokoudine 03 February 2012 at 11:34 pm

    Hi Steve, you don’t need G’MIC for that, you need “RGGJAN fork”. It’s the two links in the bottom of the left sidebar: for 32bit and for 64bit systems.

  29. Wasn’t gimp 2.8 supposed to be released on january or february of 2012 at most???
    It’s nearly April!!!
    Where is gimp 2.8??? T^T

  30. Alexandre Prokoudine 22 March 2012 at 6:44 pm

    Noone ever announced dates

  31. http://tasktaste.com/projects/Enselic/gimp-2-8
    2012-05-04 is the targeted date.

    Around the december of last year it said 25th of january.

  32. Alexandre Prokoudine 23 March 2012 at 10:36 am

    This is not an announcement of a date. It’s a rough estimation. Big difference :)

  33. I know it is =_= that’s why I said “targeted”. But it would be nice if they did release it sometime this year >_<

  34. Nice article on Gimp Alexandre. I have always used Photoshop for my graphics, but I my reconsider and look into Gimp.
    Thanks

Tell us what you think

Submit the word you see below: