Libre Arts: Week recap — 28 August 2019

Week highlights: lots of under-the-hood work in GIMP, new features in Krita and Blender, new release of Kdenlive, CUPS changes the license, a variety of projects are wrapping up their GSoC participation for this year and post updates.

Graphics

Part of the GIMP team met at Chaos Communication Camp near Brandenburg (Germany) for a hackfest. They spent most of the week improving the new plug-in API and making plug-ins use it.

Additionally, Michael Natterer rewrote memory management for plug-ins, and Jehan (not present at CCC) merged his branch that adds object-oriented like approach (discussed in the previous week recap). He continued working on submission of signals from core to plug-ins in a separate git branch though.

There’s also some talk on IRC about adding a user preference for associated/non-associated alpha as a switch in the Image menu. Let’s wait for this to be actually delivered, but it’s good to know this is on the radar.

There haven’t been many feature changes in **GEGL **(save for the Meson port), but Øyvind Kolås added a proper greyscale color spaces support to the babl library and made a new release.

A few people asked me for an opinion on the fork of GIMP called Glimpse.

At first, I considered posting in detail about Glimpse but then thought better of it. Here is what I can say on the matter, and since I’m a GIMP contributor, please take this with an extra bag of salt.

  • GIMP team has been suggesting to fork it in extreme cases (such as rebranding) for years. It is perfectly fine to do so as per terms of GNU GPL, although, so far, most attempts have been unsuccessful.
  • Contributors to Glimpse have never been GIMP contributors in the first place, they aren’t known in the GIMP community, and they don’t seem to have any experience programming digital content creation software, so there is no real fragmentation so far.
  • I spent ca. two weeks on Glimpse communication channels to figure out if they are the real deal. There is a clear and rather disturbing difference between how Glimpse contributors/moderators claim they treat the upstream project and what they actually do and say about GIMP. This is the opposite of impressive.
  • The mutual hostility between supporters and haters of Glimpse doesn’t bring any value to the overall community. If you are among haters of Glimpse, please consider leaving them alone and letting them give it their best shot. Likewise, you are not getting anywhere by annoying GIMP developers.

The Krita team has been mostly fixing bugs. E.g. Dmitry Kazakov fixed absolute brush rotation on rotated canvas.

However, Boudewijn Rempt also reverted the removal of JPEG2000 support via OpenJPEG library that he did in 2016, and updated the code to use present-day API of the library. This is currently in a branch.

Miguel Lopez better known as Reptorian contributed Spiral and Reverse Spiral modes for the Gradient tool. This is really fun! I witnessed Reptorian going from being hard on developers on Reddit a few years back to becoming a valuable code contributor (delivering quadratic blending modes and a high pass filter). Take notes, people! 🙂

Nathan Lovato submitted GDquest’s Batch Export add-on to Krita for review and inclusion as part of the upstream project. Speaking of which, there’s another interesting merge request by Dmitrij Antsevich, adding an ‘Export Group as Layer’ switch for the exporting plug-in, so that each layer group would be flattened into a single respective layer for exporting.

The FontForge team is taking a new approach to communicating to users. Fred Brennan picked up the stale Twitter account and started turning it into pure gold by showing new features and recording quick video tutorials explaining the basics of using the font editor.

CUPS 2.3.0 is out and now ships under the terms of Apache 2.0 license rather than GPL/LGPLv2, although Michael Sweet added a GPL/LGPL exception that you can read at the bottom of the NOTICE file. This shouldn’t come as a surprise given that Apple has been owning the project since 2007.

Back in July 2007, when Michael revealed the acquisition, he stated:

CUPS will still be released under the existing GPL2/LGPL2 licensing terms, and I will continue to develop and support CUPS at Apple.

Well, this lasted a whopping 12 years.

On the code level, the new release adds support for IPP presets and finishing templates, brings a variety of bugfixes, and includes a new ippeveprinter utility (based on the old ippserver sample code). For more info, see the release log (some new features are mentioned in respective release logs of betas and release candidates).

Animation

Synfig had a successful Google Summer of Code participation. Here are reports from their students:

It’s been a while since I last posted anything about Pencil2D. Most work these days is done by Oliver Stevns and someone known as scribblemaniac. Over the summer, they improved the UI here and there, added configurable constraint rotation, and fixed some bugs. The work isn’t very fast but rather steady which is great. Their latest release was done at the spring/summer edge, you can read more about it here.

The OpenToonz team has been applying pull requests on GitHub in batches lately. This may or may not mean there is a new release coming.

3D and VFX

Pablo Vasquez did another awesome review of recent changes leading up to Blender 2.81: outliner changes, Intel’s denoiser, voxel remesher, Math node etc.

Some of the other new things in Blender are:

  • White Noise node
  • New snap options: Edge Center and Edge Perpendicular
  • New Grease Pencil operator Merge by Distance

Even more, there’s a new proposal for updated particle nodes UI which deals with issues pointed out in the previous proposals, namely, the connection between particle types and their behaviors not being obvious enough, and many (potentially) disorganized floating nodes in the node tree.

Soft8Soft finally released Verge3D 2.14 for Blender 2.80, featuring augmented reality support (WebXR), morph target controls and a parametric models demo, font loading and texture-from-text features, normal map generator and more.

Gray Olson posted the final update on her GSoC project for appleseed for which she created a unified viewport in appleseed.studio displaying several possible views of a scene, allowing to switch between them and overlay data and widgets on top of it.

Jeremy HU, who also got Epic MegaGrant in July, keeps posting updates on Dust3D.

Game design and programming

Godot’s: 8 Google Summer of Code students are doing fine. Here is the latest report.

There’s also a very much welcome update from Hugo Locurcio:

CAD

WandererFan added an alpha version of a welding symbol editor to the master branch of FreeCAD and is looking for input from users. Some nightly builds are available.

The OpenOrienteering Mapper team have been steadily releasing new development version with new features and bugfixes. Some of the changes over the summer are: mobile version for Android, experimental OCD 2018 importing and new OCD exporting (version 8-12, including georeferencing), GeoTIFF support, improved CMYK PDF exporting. Have a look for yourself and maybe give it a spin.

SolveSpace is getting long overdue development love from contributors who are now taking over the project from whitequark. This is not an easy process, you probably shouldn’t expect releases any time soon, but we’ll see.

Video

Kdenlive 19.08 was out earlier in August. Some of the release highlights:

  • 3-point editing (at last!)
  • Simple speed adjustment by Ctrl+dragging edges of the clip
  • Configurable number of channels and sample rate in the audio capture settings
  • Clip transcoding re-enabled
  • Default fade duration is now configurable

For more information, please see release notes.

New features never stop arriving to Blender Power Sequencer:

Music

There was an interesting discussion about UI on Ardour’s IRC channel after last week’s interview with Oleg Kapitonov, and the immediate result was that Robin Gareus replaced text captions with icons on buttons in plug-in windows. So when you use plug-ins with narrow natrive UIs, the dialog won’t be as wide as before.

Tighter plugin window UI in Ardour 6 alpha

Robin keeps improving icon-related code ever since. He also bundled x42-tuner with Ardour and dropped rule-based midifilter.

Meanwhile, Len Ovens resumed his work on the foldback bus. Essentially it’s a software implementation of stage monitoring where an output is tailored for a performer to help them hear themselves. The new code is, um, really, really new. A lot more will follow.

And yes, all this new stuff will eventually be part of Ardour 6.

New version of VCV Rack is out with bugfixes and new API features.

Tutorials

The Blender team continues releasing videos on 2.80 features (there’s a separate playlist on YouTube for that). The most recent addition is a video on sculpting tools:

New kickass 1-minute Blender tutorial from Ian Hubert, this time on creating post-apocalyptic cities:

Chris Kearford posted a ‘Non-photorealistic explosions with Blender’ tutorial with a few videos.

Chris Kearford, NPR explosions in Blender

New tutorial from GDquest on using physics layers and masks in Godot:

Fred Brennan posted a tutorial on changing the ascender, cap height, x-height, & descender:

Ramon Miranda explains 10 tricks to paint faster and better in Krita:

Art and showcases

Great work by Philipp Urlich, made with Krita:

Philipp Urlich, Krita, Tree Brothers

More speedpainting with Krita by Sylvia Ritter:

Sylvia Ritter, Krita, speedpainting

Financials

Last Sunday, I woke up to a whopping 600 euro donation from Simon Repp. Simon works in multiple disciplines, both graphics and music. So I think I probably didn’t entirely mess up by going beyond the topic of image editors and 3D 🙂 Thank you, Simon!

Libre Arts: Week recap — 19 August 2019

Week highlights: GIMP gets Lua and JavaScript support, Krita gets notifications for new versions availability, new releases of G’MIC, DJV, and Shotcut, more exciting news on sculpting tools in Blender 2.81, a bunch of great tutorials and artwork, and more.

LibreArts podcast

In early June, I attended Libre Graphics Meeting and did two interviews, one with Pat David and one with members of the Krita team. Unfortunately, I messed up the video part of the interview with Krita devs. So I decided to reuse the only thing I could salvage, which is the audio, and started a podcast.

This is the first episode where sat with Boudwijn, Agata, and Wolthera to talk about financing the Krita project, non-coding contributions, pacing the development with regards to new features vs bugfixes, etc. I’m likely to release the text version as well.

For now, I have a few ideas what to do with this podcast, but I don’t currently expect to do more than one episode a month.

The podcast’s name also reveals a coming and long overdue rebranding of this website.

Graphics

GIMP developers continue refactoring the new plug-in API, and there’s more to that now:

Jehan isn’t stopping at that though. Last week, he prototyped a more object-oriented API (currently in a branch and undergoing code review by Michael Natterer). Here is how Jehan explained this on IRC:

It goes much further than fixing Python, that’s just a side effect. It will also bring signals to plug-ins. Basically a plug-in will be able to connect to signals that the core would emit.

Typically obvious things are things like “being notified when the image or the layer we are working on has been deleted”. But this is only the tip of the iceberg.

For instance, on our local GIMP, I have a commit to change how layers are named automatically (the #2 #3 etc.). This commit had been refused way back years ago because it changed a common thing people were used to.

I would introduce a signal “new-layer” and an extension could connect to this signal and step in to change the automatic naming. Then my core commit could become a mere plug-in. It’s common hooking system to customize software.

A more technical explanation is available in this merge request.

GEGL has finally switched to the Meson build system and removed support for autotools. Øyvind mentioned this in the commit message:

Getting rid of autotools also allows us to continue refactoring away file names and directory layout away from constraints from autotools.

He also improved how the babl library handles greyscale spaces and patched the JPEG saver accordingly.

Krita developers and contributors posted more reports from the recent Krita sprint: Raghavendra Kamath, Wolthera van Hövell tot Westerflier, Dmitry Kazakov.

Among development news:

  • Kuntal Majumder continues hacking on the magnetic lasso (GSoC project).
  • Karl Ove Hufthammer is helping Wolthera with the graphic tablet tester widget and adding small UX tweaks here and there.
  • Scott Petrovic is adding an in-app notification on availability of new Krita versions.
  • Tilya enhanced the gamut mask feature. Now when a gamut mask is active, it is also shown in the on-canvas popup color selector.

Igor Novikov refactored the look of the Preferences dialog in sK1 and posted a screenshot. Here is the old thing (keep in mind that my GTK theme is different):

sK1 old preferences

Here is the new look:

sK1 new preferences

G`MIC got a new denoising filter. Version 2.7.0 is now available for downloading.

David is also aware of plug-in API changes in upcoming GIMP 3 and stays in the loop.

DJV developers recently released a major update of their CG data/footage view and annotation tools, with more subsequent releases. Highlights: essential color management, revamped UI with HiDPI support, better DPX and Cineon playback performance, new keyboard shortcuts and mouse actions (panning, scrubbing), and more.

3D

One of the most interesting bits of news last week is that the Evangelion studio is now adopting Blender 3D for production.

Evangelion adopts Blender 2.80

There’s a ton of sculpting tools’ updates from Pablo Dobarro, including a new Pose tool…

… a voxel remesher…

…dynamic mesh preview…

…and more. By the way, the HardOps add-on already supports some of these new features.

The new file browser, being worked via Google Summer of Code program, is shaping up nicely too, as Bill Rey reports:

New file browser in Blender 2.81

Meanwhile, Intel’s OpenImageDenoise is now available as a compositing node in Blender. Grab a nightly build or wait for the 2.81 release.

Stuart Attenborrow developed a photogrammetry add-on for Blender (2.79 and 2.80), see this post on BlenderNation for details and grab it on GitHub.

Arnaud Couturier released SceneSkies 1.2 which is a HDRI manager for Blender, now coming with version 2.80 support. The goal of SceneSkies is to make HDRI-based lighting in Blender easy and fast.

CAD

Kartik Kumar recently posted an update on his GSoC project where he’s adding hardware-accelerated rendering to LibreCAD. You can test his code by building it from his personal temporary fork on GitHub.

Qingfeng Xia recently resumed his work on documentation for people interested to write modules for FreeCAD. He’s now covering the moving target known as version 0.19 🙂

Video

Nathan Lovato submitted their (GDquest) Power Sequencer VSE add-on for inclusion to Blender 2.81. We’ll see how it goes!

MattKC posted a huge official project update on Patreon regarding ongoing refactoring efforts. Do check it out! Highlights:

  • New flexible node-based pixel pipeline
  • OpenColorIO everywhere
  • Background tasks display and management
  • Multiple decoders/encoders support
  • Caching/Rendering engine planned

Dan Dennedy released Shotcut 19.08, featuring workflow improvements for playlist editing and video stabilization. Someone also contributed 360° video plugins for Shotcut to convert projections, rotate in 3D, stabilize, and punch-out a normal rectangular view.

Tutorials

Ian Hubert won the Internet last week with this 1 minute long (!!!) tutorial on animating huge crowds in Blender.

In a post at 80 Level, Gesy Bekeyei explained the production of his hard-surface project Lobster made fully in Blender.

Gesy Bekeyei, Blender, Lobster submarine

Learn to model donuts with Blender 2.80 and Eevee:

This quick guide will walk you through the process of texturing with ArmorPaint 0.6:

Dimitar from UH Studio Design Academy started a tutorials series to introduce FreeCAD to architects and Revit users. Here is the first video, and you can find the rest in this thread on FreeCAD’s forum.

New FreeCAD tutorial on drafting steel external stairs using Sketcher and Dodo workbenches.

Art and showcases

Bassam Kurdali says Wires for Empathy is still an ongoing effort:

Filipe Lima Botelho posted some renders from his recent interior design project made with Blender 2.80 and rendered with Cycles.

Filipe Lima, Blender, Botelho Beach House

Sady Fofana rendered this cyberpunk urban scene with Eevee:

Sady Fofana, Blender, cyberpunk street scene

Felipe Del Rio posted a Cycles render he did for CG Masters’ Ice Cream Shop challenge.

Felipe Del Rio, Ice Cream Shop

Interested in 4-cylinder steam engine porn? FreeCAD community member un1corn posted some! 🙂

un1corn, FreeCAD, steam engine

New Inkscape artwork from Sven Ebert:

Sven Ebert, Inkscape, Selfie