GIMP / Krita / Blender / Scribus / MyPaint / Olive Week recap — 4 August 2019

Week highlights: major changes in GIMP, exciting new features in Krita, new releases of Luminance HDR, Exiv2, Scribus, and FontForge, gazillion of news in the Blender department, new ArmorPaint releases.

This is a mix of things that happened last week and things that happened since the last recap. Due to workload, weeklies have become more of monthlies for now. I also have to admit that so much has happened since the last one that I’m struggling to cover it. Which means there will inevitably be things I’m not mentioning. The usual way to improve that is by telling me on Twitter that I forgot something :)

Graphics

The GIMP team very nearly released 2.10.14 and 2.99.2 last week. That’s right, developers were one inch away of cutting a new stable version as well as the first unstable release leading up to GIMP 3.

What happened is that they started updating how GIMP uses the wire protocol for plug-ins, adding GObject introspection, and porting GIMP to Python 3. The intention is to fix various architecture flaws accumulated over the years, port GIMP to use an actually maintained version of Python, and, coincidentally, open the gates for using more languages to write plug-ins (JavaScript, anyone?).

The whole thing used to be the proverbial axe hanging over their heads. The last time I saw them discussing this about a year ago, they didn’t know how much it would delay the release of GIMP 3 and wondered if they should postpone this until after GIMP 3.0 release. As you can see, they took the plunge.

A week into the coding sprint, the foundation work seems done now, several Python plug-ins that GIMP ships have been ported to Python 3, but there’s more work to do.

Much like any refactoring effort, the port also revealed a number of serious issues in the code that need to be taken care of. Most of the work is done by Michael Natterer and Jehan Pagès. All of this will only be available in GIMP 3.0 (and 2.99.x dev releases).

Jehan also reported that he dropped the animation plug-in for GIMP that he worked on in the past. He’s now implementing animation as a core feature and is considering making it a timeline rather than an x-sheet based solution.

Meanwhile, Øyvind Kolås made quite a splash on Twitter with his experiment in color assimilation grid illusion that he did in GEGL. The illusion exploits human vision inability to perceive colors as they really are due to neighborhood colors.

So here are the original colors:

Grid illusion, original colors

Here is the same image converted to a greyscale image with a color grid on top of it.

Grid illusion, processed image

The actual data is in shades of grey (see the color samples docker), but the color grid makes us believe we are looking at a full-color image.

Grid illusion, close-up

The operation is already available in GEGL and is likely to be accessible in the next GIMP release via the GEGL tool (unless the team finds a good place for it in the menu).

The original image from the experiment went rounds and rounds on social media, mostly with the Creative Commons watermark cropped (which makes little sense, since it explicitly allows sharing). Øyvind ended up replacing it in the original post on Patreon for legal reasons. For more information about the illusion, see his second post.

Both GIMP and babl/GEGL projects are modernizing their infrastructure too. This involves switching to the Meson build system and Gitlab CI. The babl library already has both, GEGL only has Gitlab CI support and might get Meson for the next release, and GIMP has the Gitlab CI switch as an ongoing effort, with some outlook for a future Meson port as well.

The Krita team released several follow-ups to their extremely anticipated version 4.2. It’s mostly bugfixing, but they backported one new feature from the development branch: rotating the canvas with a two-finger touch gesture.

The master branch is indeed where most fun is happening: a new SAI-like Luminosity blending mode (Agata Cacko), EXR support improvements (Boudewijn Rempt), new Windows-specific "Software Renderer" option for OpenGL engine when a GPU is too old for Direct3D 11+.

The most exciting new feature for me though is the new Snapshot docker added by Tusooa Zhu. It allows you to create variations of the same work and switch between them freely. The concept should be pretty familiar to DAW users.

Tusooa is actually one of Krita’s GSoC students this year, his/her main objective is to modernize the undo system and allow things like Photoshop’s History Brush. Another student, Sharaf Zaman, is working on an Android port that is already functional (that’s where touch rotation gesture in 4.2.x is coming from). Kuntal Majumder has a dedicated branch for his work on the Magnetic Lasso tool (will be merged to master eventually). Alberto Eleuterio Flores Guerrero also has a dedicated branch where he hacks on making it possible to use an SVG file as input for brush engines.

The team also recently revived their YouTube channel with help from Ramon Miranda. And you might want checking out their recent post on how Krita gets developed.

As for MyPaint, earlier this summer, the flood fill feature by Jesper Lloyd got merged into the upstream project after sitting for quite a while in a GitHub fork. Meanwhile, Brien Dieterle has been hacking on bump mapping (better rendering, more blending modes support) and OCIO/filmic in his private spectral_log branch.

Inkscape developers continue to viciously fix bugs for the upcoming v1.0 release. At this stage, most of the work is under the hood, so there isn’t a terrible lot to tease you with. The team also launched their official forum at https://inkscape.org/forums/.

The Scribus team announced the release of version 1.5.5. Mostly, it’s under-the-hood changes, including fixes for the new text engine to improve the support of complex scripts. One new feature (among others) you might like is an action search dialog, similar to that of Blender, GIMP, Olive etc.

Action search in Scribus 1.5.5

As you can see on the screenshot above, it works a little differently though and lists all actions in the Page menu, not just menu entries that contain the word ‘page’.

For information on other new features and download links, see the release notes.

Jeremy Tan released FontForge version 20190801. On the outside, it’s a minor update featuring user decompositions and a Croatian translation. Under the hood, however, it’s the result of cleaning up the code base and dropping Python 2 support in favor of Python 3.

Photography

Luminance HDR 2.6.0 was released in June and features 4 new tone mapping methods (Ferwerda, KimKautz, Lischinski, and VanHateren), faster tonemapping (patches coming from one of RawTherapee’s developers), gamma adjustment and saturation at the post-processing stage (after tone mapping), and preview in the HDR wizard.

Ever since, Franco Comida has been hacking on integrating the librtprocess library into the program (in a dedicated branch on GitHub for now). I’m not sure if Luminance HDR would benefit from using chromatic aberrations fix feature (or highlights recovery by inpainting), but advanced demosaicing methods are going to be useful for those loading raw files directly into the program.

Robin Mills announced a new release of Exiv2, featuring Nikon/AutoFocus and Sony/FocusPosition Metadata, revised documentation, bugs and security fixes, as well as new and updated translations.

If you are unfamiliar with the project, Exiv2 is something you typically get as a dependency for most decent photography applications on Linux, and something you don’t know you are using on Windows and macOS versions of said software.

Klaus Ethgen released a new version of Geeqie, a photo-centric image viewer for Linux. Among new features: initial support for Hi-DPI-aware rendering of images, better multi-display full screen mode, star rating display, search with regular expressions.

3D and VFX

Where do I even begin?

A mere week apart, Epic Games announced supporting Blender Foundation with a $1.2 million grant, then Ubisoft announced that they will join the Blender Foundation’s development fund as a corporate Gold member (€30K/year). It was a bit too much for passionate users who got suspicious, so Ton had to issue this statement:

What does it all boil down to?

Epic have a $100 million worth MegaGrant program and they approached Blender Foundation with a $1.2 million grant. The foundation asked Epic to deliver the MegaGrant incrementally over the next three years to ensure continuity of the work that is planned to be done:

Here is what’s changing: better development coordination, technical docs, onboarding and support for new developers, implementing code standards and better engineering practices, improving the Phabricator platform for both users and developers, establishing online support group etc. Essentially, the money will be spent to make Blender more professional.

Having Ubisoft as a corporate supporter means two things: direct funding that allows hiring more developers (the Blender Fund now gets over $83K a month), and developers from Ubisoft assigned to improve Blender. Additionally, Ubisoft Animation Studio will use Blender for their productions.

The foundation has already started hiring. Pablo Dobarro is joining the team to work full-time on Blender’s sculpting and painting tools.

Then Ton Roosendaal won the JPR Technology Advancement Award, and Pablo Vasqez got a brand new laptop with mad specs from Boxx thanks to Intel’s intervention because all Pablo’s gear was stolen from him in the US during SIGGRAPH.

And the last important bit of news here is that the Blender team released much anticipated version 2.80. No weekly report is large enough to cover all changes. You can get a pretty good idea from official release notes and a video by Andrew Price.

In other 3D news, Lubos Lenco released an update for ArmorPaint featuring curvature baker, 16/32-bit painting, EXR exporting, undo for layer operations, custom keymaps, 256 layers per project. He’s also adding some edge wear materials based on curvature baking.

Edge wear in ArmorPaint

Finally, Frédéric Devernay revived the Natron project and is releasing updates a few times a week now, mostly with bugfixes and UX improvements. Check them out on GitHub.

CAD

FreeCAD continues steadily progressing. Here are some of the highlights from earlier this summer:

  • A whole new layers system: sets object styling to layer’s children and is independent from groups. In the Draft workbench, enable it via Draft -> Utils. In the BIM workbench, there’s now a Layers Manager tool that works just as you would expect it, if you ever used another CAD system.
  • Finer control over IFC structure export to work around missing features in the IFC spec.
  • Selective IFC importing via the IFC explorer, where you can pick parts of the model to import.
  • The revamped addons manager now displays more information about each add-on that you can install.
  • The Render workbench now supports Cycles, which has been Yorik’s plan all along ever since he started developing this workbench a few years back.

For a more complete overview, see this Patreon post by Yorik van Havre. He’s likely to post a July overview soon enough.

Also, an engineer known as RealThunder in the FreeCAD community is now also on Patreon. He (she?) makes releases of FreeCAD + Assembly3 for both Windows, macOS, and Linux (AppImage). You might also like having a look at this thread on FreeCAD’s forum for some background and additional info, although I realize you might have to resist reading all 134 pages of it, for sanity’s sake.

Finally, Kurt Kremitzki posted an update on FreeCAD PPA improvements and Debian’s Science Team packaging changes.

In other news, Open Cascade released CADRays under the terms of MIT license. It’s a GPU-accelerated unbiased physically-based renderer that works on both AMD, NVIDIA, and even integrated Intel GPUs. So far, it looks a bit like a code drop: there have been no changes in the Git repository since the code publication.

Video

Dan Dennedy did a few releases of Shotcut. The most recent one features a bunch of bugfixes, a drop-down list of common frame rates for Export and Custom Video Mode, and a HD 1080p 50 fps video mode.

The Kdenlive team released an update in July with bugfixes and minor improvements. Their GSoC student Akhil K G has been steadily rewriting the titler back-end. You can find his weekly reports in the project’s blog.

Sybren A. Stüvel reports that Blender 2.81 will feature support for the WebM video container, alpha channel support for VP9 video, and the ability to write Opus audio.

Olive’s MattKC has been spending most of his time rewriting essential bits of code. We asked him for details, and this is what he replied:

The main purposes of the rewrite are two-fold:

First is I realized the new redesign plans would require sweeping rewrites anyway. The timeline, effects system, and rendering pipeline as a whole would all need to be largely reworked — and at that point that's pretty much the whole application! It was looking like more than half of the app would need to be rewritten anyway to pull this off.

The parts that remained, mostly older legacy code, weren't really worth keeping. The truth is Olive started largely as a learning/passion project and now that we're taking it more seriously, I knew it deserved some better foundations.

Hence the second goal of the rewrite, better code quality. Making sure the code is well documented and logical from the ground up to help contributors as well as just streamline development. Additionally, since the code is becoming much more modular, we'll have the option to spin off parts of code as libraries if we ever decide to.

While we've definitely switched gears from the rapid development early this year, I'm actually very excited about what's to come. I think this is a step in the direction of a super stable and extremely powerful NLE for everyone. Some of the stuff we have planned isn't even in commercial NLEs. We may still be a few months away from a usable version again, but I believe Olive will be coming back better than ever.

At this point, the master branch is quite unusable, so if you are thinking of upgrading to the latest and greatest, I would advise sticking to either latest release from May 2, or a carefully picked checkout from the master branch from the second half of May, before all the architectural changes (use ‘git checkout HASH’ for that).

Music-making

The most interesting release over the past month here was much anticipated VCV Rack 1.0. Release highlights are polyphony (up to 16 voices), MIDI output (as well as CV-GATE module for drum machines and CV-CC module for Eurorack), easy MIDI mapping, new visual module browser, a multi-core engine etc. For more details, see https://vcvrack.com/Rack.html.

Dev version of Ardour recently got support for Contour Design’s ShuttlePRO v2 and ShuttleXpress control surfaces (contributed by Johannes Mueller), as well as for Behringer’s X-Touch and X-Touch Compact (contributed by Todd Naugle).

On top of that, Robin Gareus improved the semi-forgotten headless version of Ardour, and Damien Zammit updated the ProTools importer. Robin also enhanced the Stem Export dialog to allow excluding muted and hidden tracks.

More interestingly, he contributed a basic PulseAudio back-end, just for stereo playback for now (you can also launch pavucontrol from within Ardour).

Rui Nuno Capela released Qtractor 0.9.9 with tempo/beat-detection support in the Clip > Tempo Adjust… dialog. Other changes involve bugfixes, bumped dependency on Qt 5.13 and newer, as well as asking for a new filename whenever the session file original sample-rate differs from the current audio device engine.

Rob van den Berg et al. made the first release of Ninjas 2, a rewrite of the Ninjas sample slicer. You get it as both a standalone application and LV2/VST plugins. It’s one of those cool projects born out of necessity and doing just what they need to do.

Ninjas2

Tutorials

New Inkscape tutorial from Nick Saporito:

And a new GIMP tutorial by Davies Media Design:

Steve Lund published a new Blender tutorial on adding CGI characters to live footage using camera tracking, masking, compositing layers:

One of many new Godot tutorials by GDQuest team:

Showcases

This isn’t a painting, it’s actually a Cycles render by SergOrc, from his Aladdin fan art series:

Aladdin fan art, Cycles render by SergOrc

If you love low-poly art, check out this Cycles render by Burak Gök:

Low-poly Cycles render by Burak Gök

A small teaser from David Revoy, made with Krita as usual:

Starry Night by David Revoy

And a new landscape drawing made with Inkscape, by Ozant Liuky:

Landscape drawing with Inkscape, Ozant Liuky