Monday 20 July 2015

Picture Perfect

Krita

David Briddock explores Krita, a graphics app with a chequered history but a bright future

When most people think of desktop graphics programs, the same old names keep popping up. Adobe has always been high on the list with its Photoshop and Illustrator products, but these products aren’t cheap. In fact, they seem increasingly expensive when compared to the range of high-quality apps for iOS and Android.


Yet this is a golden opportunity for open-source apps to shine. One of the best known is the GNU Image Manipulation Program (GIMP), which is pretty much an I-can-do-that-too replacement for Adobe Photoshop. However, it takes time to learn and isn’t really suited to sketching out quick ideas or developing arty compositions.

Let’s look at one of the new kids on the block, an open-source app competitor called Krita (krita.org).

What Is Krita?


At its heart the Krita app we see today is primarily a painting program, although this wasn’t always the case and, just like GIMP and Photoshop, it has a sizeable collection of image processing capabilities.

The Krita development team’s goal is to build an app for creative people who are looking for a computing platform that offers the same kind of control, precision and flexibility as found in real-world professional art materials, tools and workflows.

The latest version has achieved many of these goals. Being opensource means Krita is free to download by anyone who’s after an end-to-end digital solution for creating sketches and digital painting from scratch.

And as Krita works with the artist in a snappy yet unobtrusive manner, it’s started to entice seasoned GIMP and Photoshop professionals for concept art, comic books, texture rendering and other similar tasks.

From Hack To App


Krita has a deep Linux backstory. It all started with a Linux hack by Matthias Ettrich to demonstrate the K Desktop Environment (KDE) graphical user interface.

Ettrich’s hack came about because he was to give a presentation at the 1998 Linux Kongress. The talk’s topic centred around how to convert apps coded from the rival Linux Qt user interface toolkit to KDE. The app he chose to convert was GIMP.

As it happened, the KDE community liked the idea of an image manipulation app, and the code soon became part of something called KImage. KImage was actually part of another famous KDE project called KOffice. This was partly down to the KOffice’s rich library collection, which offered filter handling, text manipulation and so on.

Over time, KOffice went on to become Calligra. At around this time the KImage name was changed to KImageShop. However, the KImageShop name fell foul of trademark law in Germany, and KImageShop was renamed to Krayon. Yet Krayon also had trademark issues, and the app was finally renamed to Krita in 2002.

A Struggle


Initial development progressed slowly. That’s not unusual for embryonic open-source projects, which need to attract a core team of appropriately experienced software developers.

However, the project gained much greater community support in 2003, and the first public release appeared in 2004. Just a year later Krita gained features like OpenGL, plus CMYK, Lab, YCbCr, XYZ colour models and high bit depth channels.

At the time, Krita’s code contributors were happy enough. To them, Krita development was a fun and interesting hobby. However, the user base wasn’t really growing. The main problems centred around product direction and code quality.

While new features continued to be added, it didn’t always mean they worked as expected. This wasn’t helped by a decision to back-port Krita to support Qt GUI environments. Trying to support the Qt toolkit as well as KDE only resulted in unworkable software releases, even for basic things like copy, cut and paste.

So even that small user base was starting to become disenchanted with the project.

Lightbulb Moment


The moment of clarity for Krita came out of the blue – and from a rather unusual source.

This source was David Revoy’s Chaos and Evolutions training DVD (goo.gl/dnUxio), targeted at 3D artists. In this DVD, Revoy used a combination of tools to create his professional art: Alchemy, My Paint and GIMP.

After watching the DVD it was evident that not only hadn’t he used Krita, but that Krita wasn’t able to support the kind of day-to-day tasks and workflows that confront professional artists. Boudewijn Rempt, a core Krita maintainer since 2004, stated what they had was, “a very nice application, but not yet suited for daily work for a professional.”

So the team stopped coding and began to compile a list of what artists really wanted to see in Krita and how they should go about implementing these features. This proved to be a real turning point.

Rapid Enhancement


From around 2009, Krita stopped trying to be a generic image manipulation/painting application in the style of Photoshop or GIMP. Now the focus was squarely on painting elements, with the goal of making Krita a premier painting application for cartoonists, illustrators and concept artists.

It also decided that in future each development sprint review would be attended by as many artists as coders – artists who’d provide valuable feedback about how they’d use a particular feature in practice.

Strengthening the team was another goal. So around this time the Krita funding pot was used to employ Lukáš Tvrdý as a full-time developer. Tvrdý had worked on brush engines for his thesis and would be instrumental in fixing stability issues, long-standing bugs and boosting Krita’s graphical performance.

The Krita project also used its funds to hire specific individuals within the community to work on the code base. And it was able to extend the team still further through funding generated by Google’s Summer of Code initiative.

The result was a substantial jump in stability and performance over a short period of time – something that was immediately apparent to the now growing Krita community, who eagerly downloaded each new build release.

With the direction now clear but adequate funding still a potential bottleneck, in 2013 the Krita community created the Krita foundation (krita.org/item/announcing-the-krita-foundation) to encourage greater development support.

Version 2.9


Krita 2.7 and 2.8 contained significant amounts of new and updated functionality, but the latest release, version 2.9, is the most impressive one yet. The raft of new features are the result of over eight solid months of development effort.

Some of the highlights include HDR painting support, richer image document handling, advanced illustration transformations, streamlined workflows, filter and layer improvements plus support for 3D images and textures. The extra funding needed to drive all this development came in part from a Kickstarter launch.

Krita uses OpenGL to remove painting lag and improve canvas zooming, rotation or panning performance. Nvidia graphics chips and the latest Intel GPUs work best, but ensure your OpenGL drivers support a minimum of OpenGL 3.2.

Interestingly, there’s partial support for Photoshop brushes. Full support isn’t actually possible because Adobe hasn’t disclosed its ABR file format specification, and it’s only been achieved after some clever reverse-engineering of the example ABR files.

To get the best from Krita you really need a pressure sensitive tablet. There’s support for Wacom, Huion and other uc-logic based tablets, on both Windows and Linux, while Genius tablets are still problematic.

Widespread Support


Listening carefully to its users has paid off. There have been over one million downloads of Krita for Windows. Meanwhile the Krita on Steam edition is doing pretty well too.

As for the professional marketplace, around 40 studios already work with Krita Studio, which is the paid-for supported version. And while showcasing its capabilities at the 2014 SIGGRAPH Conference (s2014.siggraph.org) the feedback included many stories of happy and contented Krita-wielding artists.

Part of the reason is that studios are increasingly dissatisfied with Adobe’s Creative Cloud and are looking to port all their artists onto Linux workstations. Many other key applications, such as Maya, Modo, Nuke and Mari, already run on Linux.

So adding Krita into the mix as a highly capable 2D painting app, which already contains most of the filters a professional artist will need, means a move to Linux makes even more sense.

In addition, Krita’s GNU GPL-style licence guarantees future freedom for all platforms and ensures code modifications are always shared with the wider community. But importantly, any Kritagenerated artistic output can be treated as commercial material.

Nevertheless, professional users are always after more features, better performance and ideally workflow scripting support. The recently formed Krita Foundation aims to achieve this by attracting new funding, consolidating the versions of Krita and streamlining developer resources.

Krita is a test case of how, even with a good idea, it’s not easy to take a project from inception to worldwide success in the opensource environment. But it shows it’s still possible with the right insights, approach and lots of hard graft.

Joining The Community


As always with an open-source project, the community is king. To get started, download and run the Krita app to discover its virtues. Then send feedback on the areas you’d like to see improved.

If you find a bug, it can be reported at the KDE bug tracker website (bugs.kde.org). You should get a reply within a week. And if signing up to KDE’s bugzilla is too much bother, just post it on the forum or IRC (krita.org/irc).

And you don’t have to be a skilled software coder to help out with the Krita project (or any of the multitude of other opensource projects for that matter). You could create written or video tutorials, add some sample files, create product artwork, update the user documentation or simply spread the good word about what Krita can do.

Just check out the Join Krita web page at krita.org/get-involved/overview.