GIMP rewritten for internal version control support

Alexandre Prokoudine 1. May, 2011
8 Comments

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.