GIMP / Krita / Blender / MyPaint / DJV Week recap — 27 November 2019

Things easily get messy when I skip whole weeks, so this is going to be one of the weird recaps where events are both recent and, ugh, not so much.

Highlights: new releases of GIMP, Cinelerra, and Blender, new tool in Krita, development status update from Ardour, new wavetable synth from the Helm developer, interesting work happening in the Flowblade project.

Graphics

GIMP 2.10.14 was recently released with a killer feature — basic viewing and editing of out-of-canvas pixels, added by Ell.

This is a kind of a big deal. Previously, you wouldn’t be able to see pixels outside the canvas if you rotated the image. Nor would you be able to transform pixels in that area, color-pick from it, or use those pixels as a source for cloning/healing. All of that is possible now. Some of the missing bits are the support in the selection tools.

Ell contributed another great new feature — the Normal Map filter. It doesn’t have all the features of the old 3rd party plugin yet, but it’s definitely on the radar.

Normal Map in GIMP

Quite a bit of work was spent last several weeks on creating the new GimpProcedureConfig API and porting plug-ins to it. The point of the API is to allow preserving plugin settings across sessions (among other things). This is still kinda early work, as general GUI for plug-ins (e.g. how the switch between presets and what defaults you reset to) will need revisiting.

The good news is that once a plugin is ported to the new API, further workflow and UI updates get picked up automatically, no need to touch the plugin code ever again. It’s unlikely to be backported to the 2.10 series though.

The Krita team did a ton of work on fixing potential security issues found in source code using Coverity, a static code analyzer. Another major change: Ivan Yossi added the much dreaded notarization support for macOS builds.

Even more interesting: Kuntal Majumder merged his Magnetic Lasso tool to the main development branch, so it will be available in Krita 4.3.0. I spent some time using it on photos and comparing it to the Intelligent Scissors tool in GIMP (same tool). In fact, Kuntal looked at both GIMP’s version of the tool and at Photoshop’s version. It looks like he tried to make the best of both worlds in the end :)

Magnetic lasso in Krita

Here is the gist of what I discovered (Kuntal kindly corrected me on some of that):

  • Both tools create an editable sequence of selection anchors along a high-contrast edge.
  • The interaction is similar but not the same. GIMP’s tool expects you to click roughly along the edge and then constructs a segment that tries to follow the edge between new and old anchors. Krita’s tool does the same, but also allows to click and drag along the edge. In that case, it will automatically create new anchors as you drag.
  • Krita’s tool exposes four settings to control the algorithm, GIMP’s tool doesn’t expose any.
  • On the other hand, GIMP’s tool has optional antialiasing and feathering of the selection. Krita’s tool allows antialiasing in the Pixel Selection mode, and feathering is applied separately.
  • Both tools allow tweaking the position of selection anchors while you are still creating a selection (for GIMP, you need to enable the Interactive boundary option which is, for some reason, not used by default).
  • GIMP’s tool allows inserting a new anchor between two existing ones at any time. With Krita’s tool, you need to close the selection loop first and then double-click in the middle of two points to add a new one.
  • GIMP’s Interactive Scissors allows atomic undo: press Backspace to remove the latest added anchor (then press again for the previous one etc.), for Krita, press Shift+Z for the same (it won’t undo repositioning of a node in the middle of creating a selection though).
  • Last but not least: with default settings, both tools make very similar selections and they both fail (which is kind of expected) when you create a new anchor too far from the previous one. In my experience, Krita’s tool tends to place anchors more on the inner side of the object you are selecting, GIMP’s tool follows the edge closer. I’d put it down to just the amount of work done so far. I’m sure Kuntal will apply tons of polish!

See his blog post for some more info.

A very cool patch being worked on by Shi Yan adds recording of a timelapse right from within Krita. If you ever were a Corel Painter user, you’ll find it familiar.

Raghavendra Kamath launched a new website called Krita Artists, seemingly modeled after BlenderArtists. Very cool project!

Sergio Gonzalez released Milton 1.9.0, a resolution-independent painting application with infinite canvas. New features:

  • Smooth brushes
  • Pressure-to-opacity
  • Rotation (alt to rotate)
  • Canvas-relative brush sizes

Sadly, Milton still doesn’t build on Linux without some hackarounds. I have a binary build of the previous release from a contributor on GitHub, a patch was supposed to be submitted, and yet here we are. Hopefully, someone will push this right to the end.

Jesper Lloyd seems to have taken over maintenance of MyPaint and recently merged his patch that adds user interface language preference. Brien Dieterle keeps making improvements to bump mapping code in his private branch (you want building the spectral_log branch).

Darby Johnston released several updates to DJV 2.0, featuring multi-threaded performance improvements and new color management UI. The color management implementation uses OpenColorIO, and you can load your own OCIO configuration. Here is some F-Log footage loaded to DJV, with transfer function added by Troy Sobotka (see the f-log branch in his filmic-blender GitHub repo):

DJV color management

There is no support for Looks yet though, which is a kind of a transform meant to color-correct the output in a “creative” way (similar to what some people used to do with specifically crafted ICC profiles before).

3D

The big news here is the release of Blender 2.81, featuring massive sculpting improvements, new remeshing options (OpenVDB Voxel and QuadriFlow), NVIDIA RTX support in Cycles, with an OptiX backend contributed by NVIDIA, Intel Open Image Denoise support, far better soft shadows in EEVEE, a ton of new features in Grease Pencil, and the list goes on. Seriously, check out the release notes.

One thing I’ve been noticing lately is that people now use unstable builds even more often than before, now that Pablo Dobarro is rocking the sculpting toolbox. Judging by the recent weekly notes, 2.82 will probably feature Mantaflow and LANPR (line render engine, worked on during Google Summer of Code this year again).

There are new hires at Blender Institute. Julian Eisel is working on usability and VR/XR until spring 2020, with a prospect of further full-time employment. Sebastián Barschkis is working on fluids and generally improving Blenders physics simulations until autumn 2020.

Andreas Esau, known for Asset Sketcher and BPainter add-ons, has been working on editable measures for precision modeling lately.

CAD

Florian Roméo spent a lot of time in September cleaning up the ‘opengl’ branch of what will eventually become LibreCAD v3, and in October, he merged it into the master branch.

I haven’t mentioned LibreDWG for a while. The project is doing pretty well, Reini Urban is extremely active. In October, he released version 0.9 featuring initial DXF importing (r2000 for now) using the new dynamic API he added a version back, a 3DSOLID encoder, various new API methods, and a bunch of bug fixes. See here for more info.

Given the amount of changes that break the API, it’s probably safe to assume that there will be quite a few more releases of LibreDWG before Reini calls it stable (he actually called v0.8 from June 2019 an alpha release).

Video

Matt re-implemented a bunch of tools and functions in Olive, revisited the Preferences dialog and worked on internal color management. There’s also a new properties dialog for footage, where you can toggle alpha association (the checkbox currently says ‘Alpha is premultiplied’, which might anger a few people out there), set interlacing etc.

Jean-Baptiste Mardelle created a built-in audio mixer in Kdenlive, the code is now in the master branch and will be part of the December release.

Audio mixer in Kdenlive

More is coming to Kdenlive next: Vincent Pinon created an OpenTimelineIO adapter for Kdenlive files.

This is what he said about a month ago on Telegram:

It successfully imports a Kdenlive timeline, displays it in OTIO format, then re-exports to Kdenlive that Kdenlive can really open (missing all the unsupported stuff).

So two things need to happen next: Vincent’s code needs to be merged to upstream OTIO, then Kdenlive needs to be patched to call the otioconvert tool.

That makes two free/libre NLEs diving into OTIO support now, the first one being Pitivi. All extremely exciting!

Adam Williams released Cinelerra 7.2. This time, he focused his attention on audio related features, here are some of them:

  • New Flanger, Chorus, Tremolo, and Multiband Compressor plugins
  • VU meters and band snapping in the Compressor
  • Pulseaudio support
  • Sample-accurate keyframes for audio plugins

This is actually the second Cinelerra release this year, which is kind of unexpected. Usually, Adam makes one a year.

Three of the four new audio plugins already made it to Cinelerra GG, but the November release isn’t out just yet. The October release of the program featured better HiDPI support (use Scaling Layout in Settings > Preferences > Appearance to configure), 25 new shape wipe transitions, faster AV1 decoding etc.

The Flowblade project got two new contributors. If you’ve been around long enough, you probably already know Pascal de Bruijn who wrote a bunch of articles on color management in Linux. Pascal tweaked render encoding options, bits of UI, and added frei0r’s defish0r effect for lens distortion fixing.

Nathan Rosenquist added Apple ProRes 422 as a proxy clips option and did some work on Ardour exporting. This got the Ardour team to do an interesting announcement: Robin Gareus pointed out Ardour’s mid-/long-term plan is to support OpenTimelineIO.

This is interesting, because up till now, sharing your Ardour project with someone using other programs was mostly done via stem exporting, as Paul has been quite vocal in his dissatisfaction in other options such as AAF and OMF in the past.

Audio and music

One of the most exciting news in this department is the first video demonstration of Vital, a new wavetable soft synth by Matt Tytel. Matt, who is known as creator of Helm, is currently running a closed beta testing program (which kinda makes sense, since otherwise he’d be overwhelmed with feedback).

Vital is really interesting, not in the least place because of MPE support. So if you happen to own ROLI’s Seaboard or Haken Audio’s Continuum, or, who knows!, an Eigenharp, this is right up your alley.

Here is a rather long video of a talk by unfa, well worth watching.

It’s undecided yet what funding model Matt will pick for the project. It might very well be the case that I’m advertising a project that will turn out to be proprietary (gasp), we just don’t know. Matt will make an announcement when it’s the right time to do so. For development news, you can follow him on Twitter. And there’s an official Discord channel too.

Chris Cannam did a series of releases in the Sonic Visualiser family. As usual, all great things for anyone involved with academic music research.

Ardour now has an Autostart option in the Engine dialog at startup time. By enabling it, you’d tell Ardour to automatically launch the selected engine with selected settings when the currently chosen device is available. So, one boring thing less to do when all you want is just making some music. Moreover, the startup code has been revamped to use finite state machine.

Paul Davis started redesigning the declicking and fades around loop boundaries to provide smooth looping.

Ben Loftis of Mixbus added support for two new control surfaces, Behringer X-Touch One and RuCo, the latter being a DIY controller by Russell Cottier made specifically for Mixbus users.

Robin Gareus started working on a virtual keyboard right inside Ardour, so now you can use your regular computer keyboard as a MIDI input device routed to any MIDI track.

MIDI keyboard in Ardour

Robin also started working towards VST3 support in Ardour. This is early work in a dedicated branch. It’s kind of exciting but not necessarily going to be available in 6.0. We’ll just have to wait and see :)

You can read about most of that in slightly more details in a recent development update from Paul Davis. TL;DR: 6.0alpha is going to happen soon.

Another thing worth mentioning here is an op-ed by Artemiy Pavlov on Korg’s possibility to load custom plug-ins into Minilogue XD, Prologue, and Nu:Tekt NTS-1. The article was greeted by some interesting constructive criticism from Paul Davis in the comments section.

Apart from Paul being Ardour developer, there are more reasons to mention this. First off, Korg’s SDK is open source software (BSD 3 Clause). Secondly, before founding Sinevibes, Artemiy used to contribute to free software. For instance, he wrote a few LADSPA effects used in the internal signal chain in Hydrogen, a free/libre drum sequencer. So he’s not just some random guy writing proprietary code.

Finally, Korg is really not the first to create an open platform. Among recent projects, MOD’s units are built around LV2 API that is far more capable, and you can create your own plugins using e.g. Faust, which is a far more versatile high-level programming language than what Korg provides. That said, deploying a newly developed plug-in is where Korg clearly wins (if one was to compare a synth to an FX box with MIDI/CV features).

Tutorials

I kinda hesitate to share this, because not everyone has the time and patience to watch 1h43m long video on just two darktable modules. I’m doing it though — mostly because I think that, together, filmic and tone equalizer are going to make a huge difference for darktable v3 users.

You also definitely want checking out a new series of videos by Pierre on changes in upcoming darktable 3.0. The first one covers changes in the pixel pipeline:

Blendernation published a great behind-the-scenes post on recent Ice Cream Shop artwork by Felipe Del Rio:

Ice Cream Shop

Golden Ribbon made a tutorial on drawing an iOS-styled construction kit icon with Inkscape:

Artworks

Fictional Russian spacecraft УРАН-1 (Uranus-1), an asteroid destroyer. Blender/Photoshop. Modeled with Hard Ops and Boxcutter add-ons.

Uranus 1

Fletch Graham is doing some great Nodevember work with Blender. Here is “just” a procedural height map and micro displacement, with source files available to study:

Nodevember

Anaud Imobersteg posted his new work called Roots to BlenderArtists. “The scene was built in Blender 2.8, using Megascans and Mixer, Graswald, Poliigon. Rendered in Cycles and post-produced in Photoshop”:

Roots

Some chibi characters from Yudha Agung Gumelar, made with Inkscape:

Chibi characters

Valeria Vasneva published a new autumn moody painting with a bit of Halloween touch, made with Krita:

Halloween

Speaking of autumn, here’s a new speedpainting from Philipp Urlich (Krita, as usual):

Autumn landscape

And here is an interesting work by Ilya Bar, made with… Krita, in fact!

I am drawing mostly with polygon tool (not vectors). Each polygon on separate “Paint” layer. Here about 30 layers. For example fox has main body (red) layer. white fur layer, dark fur layer, highlight, and 2 shadow layers.

Curious fox


Each of my weekly recaps involves researching, building and testing software, reporting bugs, talking to developers, actually watching videos that I recommend, and only then writing. Time-wise, that’s usually between 10 and 20 hours. If you enjoy the work I do, you can support me on Patreon or make a one-time donation.

Support Libre Arts at Patreon