Symmetry Painting in GIMP ready to be merged

Hi all,

So I started a small crowdfunding for mirror painting in GIMP some time ago. It took some time since I had other priority (like our ZeMarmot film project) and my only time restriction was to get it out before GIMP 2.10 is out. And I knew it would take some time anyway.
Also I wanted to do things well. I know that some people were complaining that I could already release the code from the early demo I showed a video of, long ago. But seriously this was horrible crappy broken code. As a developer with some self-respect, I would never release such a code publicly, which was clearly done only to give an “idea” of what it could look like, not for solid code base of a good application.

Well I finally reached this state of a solid code base. I actually saw very quickly the need for something much more generic than just “mirror” painting. So I implemented what I called a generic “Multi-Stroke” feature, though Mitch did not like this naming at all and proposed to just call it “symmetry” (which I, in turn, don’t think defines the feature well, since it allows more than only symmetries, but well…). Basically from a single stroke coordinates, a “symmetry” would outputs 1 or more strokes (at different coordinates, but also with optional brush transformation too, using the new GEGL engine of GIMP).
With this base feature, which takes most of the code, I implemented the originally funded mirror symmetry, as well as a rotational symmetry, and a tiling symmetry (once the base code is there, adding any kind of “symmetry” is just a matter of minutes).
Well a video is worth any words. So here is the current state of the code:

For those who are interested into the resulting code or want to test, it is available publicly in a branch (hopefully soon to be merged to master): https://git.gnome.org/browse/gimp/?h=multi-stroke
Probably the next step of such a feature would be to have an API to allow plug-in developers to easily implement their own symmetries. I believe this would not be very complicated to implement too.
Enjoy!

6 Replies to “Symmetry Painting in GIMP ready to be merged”

  1. Really nice! It’s been such a long time since I (and probably most others) have donated to this feature. I’m really exicted to see it finally being realized and it looks awesome, thanks!

    1. Yes. Review took a lot of time, but it has been merged around January, I think. And the last development release of GIMP has it: http://www.gimp.org/news/2016/07/13/gimp-2-9-4-released/

      Now since it’s a dev version, to try this, depending on your platform, it may be more or less easy. Windows has some nightly builds (http://nightly.darkrefraction.com/gimp/). For Linux, I would advise flatpak (http://flatpak.org/apps). Not so sure for OSX. Or if you have some development proficiency, you can always compile from the release tarballs.

Leave a Reply

Your email address will not be published. Required fields are marked *

Comment ID: Is2rAQ