GIMP rewritten for internal version control support

GIMP rewritten for internal version control support

One of the most exciting things about SIGGRAPH is that sometimes people actually create real applications based on papers published there. Even better, when demo applications are modifications of existing free software. This is exactly the case for a project by Hsiang-Ting Chen, Li-Yi Wei and Chun-Fa Chang who implemented internal version control system (VCS) for images in GIMP.

The project is called "Nonlinear Revision Control for Images", and, as you could guess, is to be presented at SIGGRAPH 2011 later this year. To meet deadlines the research team had to rewrite quite a bit of current GIMP's core to introduce a system that uses direct acyclic graphs (DAG) that represent spatial, temporal and semantic relationships between operations.

This makes it possible to do typical version control things: review, replay, diff, addition, branching, merging, and conflict resolving. The bonus is in recording and replaying users actions.

The idea of using VCS for complex image editing workflows isn't exactly new. This is rather common in CG, and of course there have been projects like  SparkleShare which is essentially a handy wrapper around Git. Synfig Studio, a free 2D animation package, even has a built-in UI for (currently aging) CVS. But an internal VCS in free graphics software is something rather new.

Right now there's just an abstract available at the project's page followed by a video demonstration.

The paper itself will be uploaded later, and, presumably, source code will be available too. One of developers presented the project in GIMP developers mailing list just few hours ago, so please don't expect any solutions regarding the project just yet.

It is however clear that should the research be put to a good use in upstream GIMP project, the code will have to be rewritten using GEGL (a likewise DAG based core) which already struck its roots into GIMP.

One last thing to mention is that in a way GIMP seems to be getting back to its academic origin lately. Both Liquid Rescale filter (free implementation of seam carving paper), GMIC filter (initially an academic research), new Cage transform tool (free implementation or Green Coordinates paper), GSoC 2009 projects implementing new interpolation methods and upcoming GSoC 2011 project on seamless image cloning — all of them prove that there's a lot of science-intensive work still to be done in digital imaging.

An internal VCS looks like a very interesting tool to assist complex workflows and certainly will come in handy. Stay tuned for news on how the thing develops.

Was it useful? There's more:

8 Responses. Comments closed for this entry.

  1. “The bonus is in recording and replaying users actions.”

    Happy, happy, jolly, jolly!!!
    :) ;) :D

  2. Btw. new site now hosts GIMP builds

  3. Bw, the happy and jolly bits we’re if this actually means one could replay those actions on other files/layers, i.e. macros.
    If not, only the faces is valid.

  4. Among this year’s GSoC projects I think this one is the most exciting. I wish so much I could try it out on GIMP.

  5. This is not a GSoC project :)

  6. I was kidding :D Seriously dunno why did I assume it.
    How can I get it?

  7. It’s not publicly available yet. The project will be presented at SIGGRAPH. But this I can promise to you: as soon as source code or builds are available, I’ll blog about it :)

  8. I’m sure you will. Thanks in advance!

    Now my only wish is that I was more patient..