A thumbnail sketch of Krita 2.8

LWN.net needs you! Without subscribers, LWN would simply not exist. Please consider signing up for a subscription and helping to keep LWN publishing

Version 2.8 of the digital-painting application Krita has been released. The project recently formed its own backing foundation and has undertaken a concerted effort to fund development through (among other things) the sale of training materials, so a natural question might be whether or not this new release shows any substantial gains that could be attributed to the more formal project management. It is hard to say for sure, of course, but the change does look like a win—the new release includes a series of technical improvements as well as practical contributions from Krita-using artists.

Krita 2.8 was officially released on March 5. Developer Dmitry Kazakov has been publishing the releases to the "Krita Lime" personal package archive (PPA) for Ubuntu and its derivatives. Beta builds have been released steadily for the past few months; a release candidate appeared on February 27, which was feature complete with the final 2.8 release.

Plumbing

The 2.8 release marks the debut of several new under-the-hood changes in Krita. The first is a major refactoring of the application's OpenGL canvas code. Krita has used OpenGL to render the drawing surface on Linux since version 2.0 in 2009; the OpenGL canvas was instrumental in some of Krita's best-loved features, such as the ability to freely rotate the canvas on screen (that is, rotate the orientation of the canvas as it is shown in the window, just like one would a piece of paper, as opposed to rotating the image contents). For 2.8 the OpenGL support was brought up to OpenGL 3.1 and OpenGL ES 2.0 compliance (the latter of which enables the tablet-centric "Krita Sketch" variant to run on embedded hardware).

Along the way, Krita's Windows builds gained OpenGL support as well; 2.8 marks the first version of Krita to be declared stable on Windows. But the more interesting improvement for Linux users is an entirely new OpenGL scaling algorithm that offers better quality than the default OpenGL scaling options. The upshot is smoother rendering, especially when zooming in on the canvas.

The new rendering code was written by Kazakov, whose time on the project is funded by the Krita Foundation. Kazakov also undertook the other major piece of plumbing to debut in version 2.8: native support for pressure-sensitive graphics tablets. Pressure-sensitive tablets are vital to Krita's primary mission of implementing natural-media simulation. In the past, Krita had used the tablet support implemented by Qt, but the Qt library was plagued by problems like poor Windows performance and limited hardware support—Qt supported Wacom, the most famous vendor of pressure-sensitive tablets, but no other manufacturers. So "with leaden shoes," as project lead Boudewijn Rempt described it, the team wrote its own tablet support subsystem.

Another significant contribution to 2.8 is Lukáš Tvrdý's G'MIC plugin. G'MIC is an image-processing framework with capabilities often described as "weird and wild" or words to that effect; in a sense it is a competitor to an image-processing library like ImageMagick, but it has a long history of supporting complex processing pipelines that need to be seen to be believed. The most well-known effect is "inpainting," which intelligently synthesizes pixels to fill in regions of an image with far more realism than the traditional "cloning brush" method. GIMP has had G'MIC support for quite some time; Tvrdý's plugin brings that feature set to Krita.

It will, of course, take some time for Krita users to discover all of the interesting things that G'MIC can do. No doubt it will be informative to see how G'MIC filters perform on natural-media artwork as opposed to its use with photographs in GIMP.

Painting

In addition to the various the under-the-hood changes, Krita 2.8 also sports a handful of new painting tools. The first is a tool for creating arrays of clones—essentially, mass-duplication of picture elements, so that rather than repeatedly cutting-and-pasting, the user can paint an image that is tiled in however many rows and columns as are needed.

The tool works by cloning the current image layer, optionally adding a horizontal and vertical offset to each clone so that they are arranged in a 2D grid. But these clone layers are not mere static copies of the original; they are updated in real time as the user continues to paint on the original. This makes it possible to draw all of the clones simultaneously, which is a lot easier than drawing one, duplicating it, then undoing the duplication if things look wrong. Back in September 2013 when the feature was first previewed, it was hailed as tool of particular utility in video game design, but there are certainly many more potential uses.

Another new painting feature is "wraparound mode," which helps the user create tileable images. There are two parts to the feature: one repeats the canvas in every direction so that the tiled view is visible, while the other wraps any brushstrokes that go past the edge of the canvas back around to the other side. Again, the simplest use cases to describe for the feature might be video-game-related (e.g., repeating background textures that blend smoothly at all of the edges), but that is by no means the only possibility.

There is an assortment of smaller feature additions, too. One is the "pseudo-infinite canvas," which lets the user extend the edge of the image on the fly by clicking on a button at the boundary. Krita can also load external files as display-only layers that are automatically updated whenever the external file is changed. This is an alternative to importing the external file's contents as a native image layer, which (naturally) can no longer be updated in another program.

As interesting as entirely new functionality is, one could also make a case that the addition of several new brush sets is more significant. Krita supports the creation of custom painting brushes that model all sorts of physical properties—including changes to the size, shape, opacity, and behavior of the brush in response to various graphics-tablet dynamics (pressure, tilt, speed, etc.). But with all of those available variables, it can take some work to tweak the parameters into settings that reflect something useful for daily work.

The project's response has been to promote brush sets that have been finely honed by artists who know what they are doing, and several new ones have recently made their debut in time for 2.8. One of the most interesting is Vasco Basquéhas's watercolor set, which simulates wet-paint behavior like mixing and diffusion. Krita has had support for modeling the physics of liquid paint for quite some time, but has lacked a brush set tuned to recreate watercolor effects. Despite the fact that watercolors are one of the first media that kids are exposed to, they are a difficult form of painting to master. Basquéhas's watercolor brushes may not simplify that learning process, but at least they simplify cleanup.

Basquéhas has also created a "modular" mixed-media brush set that emulates a range of different tools (pencils, pens, erasers, smudge tools, and so forth). So has David Revoy, whose set features entirely different implementations of some tools, in addition to completely different brushes.

Artist-created brush sets are a tremendous addition to Krita's toolbox, but if there is any criticism to be leveled at the feature it would be that it can become difficult to navigate the ever-ballooning library of brushes available. But there is work underway to improve the brush-management experience. Revoy, Timothée Giet, and Ramón Miranda have worked together on a standard approach to the thumbnail icons each brush displays in Krita's tool palette, and Basquéhas's modular set includes a naming convention to help the user keep the dozens of options straight. Krita itself has also implemented features to help users organize their brushes more easily, such as the ability to assign tags from the right-click context menu.

Critical eye

Based on the 2.8 release candidate build, the new Krita release is another solid one. One might have worried that the new implementation of graphics tablet support or the refactored OpenGL canvas could cause problems—in fact, Krita pops up a warning when one enables OpenGL rendering—but in my own testing I encountered no crashes or mysterious bugginess. Undoubtedly a "YMMV" caveat is warranted, particularly in light of all the various GPU and driver combinations available, but the release candidate announcement only cited one known OpenGL issue, which is a good sign.

Whether the internal graphics tablet support is better than Qt's built-in support is a bit difficult to gauge from a single test. Krita 2.8's tablet support is certainly less difficult to configure, which is a factor not to overlook. For people who own non-Wacom hardware, of course, any support at all is a big improvement. Hopefully, in the long run, Krita's improved tablet support will eventually make its way into other applications (or toolkits).

As for the new features, array cloning and wraparound mode are both simple enough to learn one's way around without outside assistance. The new brush sets can take some getting used to in order to see the particular advantages each individual brush offers, but the same would be said of media in real life, too.

If one does decide that some expert guidance is wise, however, the Krita Foundation recently released its second training DVD, Muses , which showcases Miranda's work. This (and the Drawing Comics with Krita DVD that preceded it) is a welcome new approach to raising funds for further Krita development. Considering that much of Kazakov's 2.8 work was funded development, it would appear that Krita has managed to find a sustainable fundraising model—which, as most people know, is a bit of a rarity among free software desktop applications.

Of course, making a push into new territory helps attract new users in need of training, so Krita 2.8's stable, OpenGL-rendered Windows builds will probably be a boon as well. Speaking of new territory, yet another interesting approach being taken by the project is making Krita available for distribution through Valve's Steam software-delivery service. Krita recently got approved by Steam, although the actual release has not yet happened. It will be interesting to watch that release happen and see how the numbers impact the Krita project. Regardless of how smoothly it goes, though, it is nice to see a free software project pursue an out-of-the-box distribution method like Steam. No doubt it will not be the last to do so—and it looks like 2.8 is a release many new users will be happy with.

