MyPaint 1.0: there can never be too much awesomeness
In terms of promoting free software a v1.0 is handy beyond common sense given the irrational admiration of “round” numbered versions. Anyway, this is MyPaint v1.0. There are many like it, but this one is mine.
It'd be a joke to try covering every single change between 0.9.1 and 1.0. Let's just say that if you have wild expectations, try going for the wildest. Awww! Wilder!
Menu bar can now be embedded into toolbar which is also a new thing, with sliding out color, brush and basic brush settings palettes:
Dialogs are now by default docked in the right sidebar, but can be dragged out and snapped back, or collapsed into a small bar with just a caption.
The Layers dialog got new icons and a total of five blending modes: normal, dodge, burn, multiply, screen.
MyPaint now has scratchpads which can store anything: pictures, brush strokes etc. You can even render a color palette into it.
The Preferences dialog now allows configuring actions for mouse buttons and a pointer device:
Looking back at mid-2009 when MyPaint was still barely known, I think it was next to impossible to forsee that in few months time the project's popularity would suddenly go through the roof. In the best traditions of journalistic arrogance I cornered David Revoy and developer Jon Nordby to ask a few questions about the good ol' 2009, the present and the plans for future development.
Given that development has become pretty much shaped by artists ever since the Lezard timelapse, I'm curious, David: what was your “aha moment” with MyPaint two years ago when the app still looked quite like something made “by programmers for programmers”? :)
David: Hey, not really true! Mypaint never looked “by programmers for programmers” and was a blazing fast painting app even then, very sensible and unlaggy with exellent fullscreen workflow. Thanks mainly to Martin, MyPaint was more designed as “by an artist seriously skilled in programming for artists who really want to focus on digital painting/drawing”.
The “aha moment” happened a bit after I started to study all open source 2D apps around fall 2008. There were many applications to try out: GIMP + GPS, Krita, Gogh, DrawPile, Flowpaint, Qaquarelle… and MyPaint. The version 0.6 was for me the only software that made me boot day after day on my Linux partition just to enjoy drawing painting with. The feeling and keyboard access, ergonomics — all of that was far better than Painter and Photoshop on Windows at the time.
I also started to demo it to my CG students. My first brushkit was born to suit my needs soon after that, then I joined the core team of Sintel. Few months after this, in the beginning of 2009, I switched to Linux Mint completely. I still got a screenshot from that time.
Versions 0.7.1 and 1.0 which are mere 2+ years away from each other, look like two completely different applications, right up to the point when you open the advanced brush settings dialog. Can you say you are already happy with the user interface and features, or there's much more work to do?
Jon: One thing that I personally think is important is a feature to optionally work with a fixed size canvas. In 1.0 this feature is only partially implemented (see File->Document Frame), so that is something I'm not very happy with :)
David: Totally agreed with Jon.
One of the strongest benefits of this project for the entire community is that you actively participate in development of the OpenRaster file format, up to creating a loader/saver for GIMP. Do you think ORA and its support in free apps are good enough for e.g. digital painting, or maybe there's something sorely missing?
Jon: Getting the OpenRaster support out in a released version of GIMP, so that it works out-of-the-box will be a big improvement. Fortunately it looks like that will happen pretty soon! Sadly some basic but really handy things like thumbnail support is still not as good as it should be on all platforms. This is mostly because there are different ways of doing it on each and every desktop environment. Most notable in the free software world is the temporarily lacking support for thumbnails generation in Nautilus from GNOME 3.
While both David Revoy and Ramón Miranda work on upstream brushsets and backgrounds, there are projects like MyPaint Atellier that provide additional resources. Do you have any plans to make such projects more discoverable, e.g. by starting a GHNS based repository of assets and implementing an internal client for it in MyPaint?
Jon: I would love to have a GHNS client and repository for MyPaint! Perhaps there is a potential contributor out there that will take up the challenge?
Earlier this year MyPaint was forked to add traditional animation features for an open movie project. While the changes will probably never become part of upstream MyPaint, do you have plans to simplify development and installation of add-ons?
Jon: For projects that have a clearly different goal than MyPaint, I do not think add-ons or plug-ins are the correct solution. From what I have seen, what people want from MyPaint that leads them to customize it heavily usually boils down to a few things: the simple user interface, infinite canvas and most importantly, the brush engine and brushes. What I would like to do is enable these things to easily be reused in a different application.
For instance for applications targeting different device form factors like handsets or slates, or specialized for different purposes like traditional animation or storyboarding. This approach is more making certain parts of MyPaint reusable libraries than creating a plug-in or add-on architecture in the MyPaint application itself.
Jon, another interesting project started this year is your involvement with the GEGL project. Could you please elaborate on that as well as on your plans regarding GEGL and MyPaint?
Jon: I believe that GEGL has a great potential in increasing the software reuse and improving document interchange between libre graphics applications. It already has a good framework for generic graphics processing, enabling things like on-demand processing, non-destructive editing and high bit depth.
What I have been focusing on the last couple of months is integration libraries for common user interface toolkits to make it simple to use in a graphical application. Such libraries now exist for GTK+, Qt and Clutter, and make it trivial to get started using GEGL.
Nothing has been decided about GEGL and MyPaint, but the idea is to use GEGL in MyPaint for the graphics processing. This involves implementing a MyPaint brush engine as one or more GEGL operations. That would make it usable for any application based on GEGL.
Next step would be to use that brush engine instead of the current one, and to base the document model on GEGL operations. It might also be possible to make the document a reusable library, but that is uncertain yet. One of the toolkit integration libraries would then be used for rendering.
Once those steps are taken, one can start to thing about how to leverage GEGL to do new and interesting things.
Beyond that, what are the key aspects of the future MyPaint that you guys would like to focus on?
Jon: On the technical side of things we have a transition from Python 2, pyGTK and GTK+ 2 to Python 3, GObject Introspection and GTK+ 3 coming up. With GObject introspection memory consumption is reportedly better, and we can perhaps drop the SWIG dependency for generating our own Python bindings.
This will require some developer manpower, and a lot of testing, but should hopefully be uneventful for end-users. We don't have a concrete plan for this yet, but those that are interested in helping out are always encouraged to stop by.
David: As a user, I'm really exited by all the new features in branches for post 1.0 . I especially like the new blending modes as 'colorize' and 'overlay', and also blending modes directly on brush.
I'm also really happy about the future project to make the 'frame' feature to accept any size of artworks, and not systematically round it to a multiple of 64 as it does now. This will make Mypaint easier to include in a workflow with a strict image size (texturing / movie frame / etc. ), and will also open a way to include templates for new creations (e.g. A4, Legal, 1920×1080 etc…).
So, for users only very good things ahead, and with the development PPA it will be very easy to follow.