Libre Graphics Meeting 2013: We want you

Are you interested in the overlap between technology, art and design; and free, open, libre tools that join these domain? Do you use Libre Graphics software like GIMP, Blender, Krita, Inkscape, Scribus, MyPaint (and similar), and want to meet the people behind them?
Are you a developer of free and open source software in the areas of photography, graphics, page layout, design, publishing, typography, animation or video?

Come to the 8th annual Libre Graphics Meeting, from Wednesday 10th to Saturday 13th April in Madrid, Spain!

Registration is open (no attendance fee, sponsorship possible), and presentation & workshop proposals are accepted until 15th of February (2 weeks from today!).

MyPaint and goats at LGM2012

Already covered in the news from LGM was the release of GIMP 2.8, and that GIMP 2.10 will be fully GEGLified. The goat-invasion branch which has most of that work, the result of 3 weeks of pippin and mitch on a couch hacking together, has already landed in master. This means that GIMP now has support for high bit-depth workflows for most operations. Finally.

Putting the goat in MyPaint

During LGM I started working on using GEGL in MyPaint. I have already mentioned this idea several times, so it was time to stop talking and get hacking.

As a first step in making use of GEGL I wanted to replace the current surface implementation with one based on GeglBuffer. Since GeglBuffer already provides tiling, and can store any buffer data supported by Babl this turned out to be easy. Øyvind (pippin) added the semi-quirky pixel format we currently use* in MyPaint to Babl, and I was able to get a rough working GEGL based Surface implementation the first evening.

The MyPaint brush engine working on top of GeglBuffer

* RGBA premultiplied alpha, in 16 bit unsigned integers with  2^15 being the maximum value.

The next couple of days went to moving to the GeglBufferIterator API instead of gegl_buffer_{get,set} to have zero-copy access to improve performance, and improving GEGL and GEGL-GTK so that some of the hacks in the initial implementation could be removed.

Most of the work is in the gegl branch of MyPaint. A simple test application, mypaint-gegl.py, is included, and you can read README.gegl for how to try it out. Warning: only intended for curious developers at this stage.

A lots of work remains to be done for MyPaint to be able to fully use GEGL. The progress is tracked in two bugs, one for MyPaint work and one for GEGL issues. Because one cannot combine PyGObject with PyGTK, it will likely not be possible to fully integrate GEGL in MyPaint before porting to PyGI and GTK+ 3.

Oh, in case the goat references are lost on you – check the GEGL page on wikipedia.

Mypaint, OpenRaster, et.c. update

OpenRaster

I managed to the GIMP OpenRaster plug-in into mainline GIMP. This means that GIMP 2.7.1 and forward will have rudimentary saving and loading support out-of-the-box. Users of GIMP 2.6 or 2.7.0 can download and install the plug-in from here.

Luka Čehovin started work on a reference library (libora) for OpenRaster. Hopefully this will, along the way, make it easier to provide OpenRaster support in applications. Perhaps it can also help solve some performance issues we currently have in MyPaint when saving large images.

MyPaint

In late January we released MyPaint 0.8.0. The release was delayed a couple of months from the initial planning, and we did not get to integrate as much as we’d like from external git branches, but it was about time to get the changes we do have out in a stable version.  It was very nice to have a Windows installer ready from day 1, and that we were able to translate it into 12 languages! This weekend we also released MyPaint 0.8.1, which fixed a nasty memory leak and some minor issues. No Windows installer or DEBs yet tho.

Just recently, MyPaint has also been successfully built and run on Mac OSX, pressure sensitivity and all. Hopefully we can make it solid and easily available to end users with time.

I’m also hoping that we’re able to get 0.8.1 into official Ubuntu Lucid repositories. Sadly we missed the deadline for being imported from Debian, and I’m not sure who or how to approach this, but at least we got an issue for it filed on Launchpad. If we also got into the spring releases of Fedora, OpenSUSE, Mandriva et.c. that would be great, but thats of lesser importance.

More important is documentation, we are currently way behind on end-user documentation. I started a skeleton for a manual, and I suspect that I’ll be the one to do finish it also as no-one else has shown an interest in working on it. If I get motivated I might also do some screen-casts showing and explaining some features. Another area of documentation is making sure potential contributors have the information they need to easily be able to contribute, and I’m hoping to make all the relevant information available from the Development page on our wiki. And I’ll probably document up some of the code also, eventually. Lots of things to be done in a software project besides writing code!

As a side note, Krita 2.2 (due in early May) will include a MyPaint brush-engine, which is very cool. And apparently a commercial OS X application (that I cant remember the name of) already uses the it!

Going to Libre Graphics Meeting?

I’m looking at going to LGM in Brussels this year, to meet with MyPaint, GIMP, Krita and developers of free and open source graphics software.  Sadly its on 27th to 30th of May, which really is a bad time for me; May 27th being the dead-line for my senior project report and on June 2nd is my first exam.  But we’ve planned completion of the report 2 weeks before that and I’m trying to prepare in advance for my exams, so I’m hoping that I can go.

To make this event happen and enable developers to go  a money-raising campaign has just been launched on Pledgie: http://pledgie.com/campaigns/8926  Please support this effort if you are able!
Click here to lend your support to: Libre Graphics Meeting 2010 and make a donation at www.pledgie.com !

On the road to MyPaint 0.8

MyPaint popularity is continuing to grow, much thanks to publicity from the Durian Open Movie project. We’re now working on the v0.8 release, which hopefully will be out this year.  I wrote a small post on the official site about that here.  I’m responsible for the translations, and so far we have 11 of them, with a couple more in the works that I know of.  Packaging is also picking up, soon most of the major GNU/Linux distros will have MyPaint in the official repos! Even some talk about a Mac OSX version (using X11.app tho).

I also plan to do some OpenRaster / GIMP-integration improvements and perhaps a small statusbar. I’m even considering writing a C library (with Python wrappers ofc) for OpenRaster, mostly to sped up saving and loading. A reference implementation would of course be nice to have.
But that is somewhat unknown territory for me and I’m not sure if I’m able to set aside the time necessary for such a task… We’ll see!