Hi, everyone,
I’m here to give some news, both about the G’MIC project, and about one of the G’MIC project developers (namely, me ).
I’ve been very busy lately, both professionally and personally, with a lot of new issues to deal with, and I haven’t been able to devote as much time as I’d like to G’MIC.
In particular, since January, I’ve been preparing for a highly selective “CNRS Research Director” competition, for the 3rd year running, and this has taken me up a lot of my time.
This year, I seem to have made the short-list though, so I keep my fingers crossed that it makes it to the end and not have to try again in 2025! (the final verdict should take place on july 9).
These last few days, however, I’ve been able to code a few new things, which makes me think that we’re not far from the release of a (somehow) major version 3.4 (we’re currently at 3.3.6, and 3.3.7 for development version).
Are these exciting things? I’m afraid not, but these are things I’ve wanted to do for a while.
This mainly involves re-implementing some of the native commands (which were initially hard-coded in the C++ library CImg
, used by G’MIC), as commands of the G’MIC standard library stdlib
(so, re-written in G’MIC language). This, because, commands of the stdlib
are easier to maintain and to update over time (and whose evolution does not require re-installing a new G’MIC version, as invoking $ gmic update
is enough) :
- So, the three commands
graph
,select
andplot
have been re-implemented from scratch, and I’m pretty happy with the result. Particularly, commandplot
is now better than before. It looks like this:
- I’ve also recoded the command
blend
to fix some issues with non-basic blending modes with the background layer has an alpha channel (now it’s closest to what GIMP does).
And I think I’m done now with the wish of re-implementing native commands as stdlib
ones.
Well, I understand this doesn’t look like these new features would be enough to release a major new version!
But the reality is I believe I have reached a point where I have pretty much finished what I wanted to do for the G’MIC project (from the programming side) :
-
The G’MIC scripting language is really functional, stable and after having programmed a lot with it (all of the 2400+ commands of the
stdlib
! ), I honestly think that adding new features to the language itself (like class management, new data structures, or flow-control instructions ) wouldn’t necessarily be very productive (compared to the time that would be spent implementing these features). I don’t believe we need to make the G’MIC language evolve at all costs by adding bloated features that are actually possible, by writting scripts in a different way. Let’s keep things simple! (or at least no more complicated than it already is). -
I find also that the G’MIC-Qt plugin is really cool, and generic enough, and again, I don’t see what major feature could be added to it. The existing filters cover a wide range of image processing tasks that a user might want to apply. It is already available for a lot of different host software, so I can’t see what more I could have hoped for. Kudos to Sébastien Fourey for having developed it during all these years.
-
Other user interfaces are currently being developed by the nice people from the DDA team at my lab (particularly the re-design of the G’MIC Online Web Service, as well as a Python binding for G’MIC). They are doing an awesome job, and hopefully I’ll be able to say more about what they have been produced these last weeks/months. But technically speaking, what they do is beyond my expertise, and I can’t really get my hands dirty to help them.
So in a sense, I think my development work on this project is not far from being finished.
That doesn’t mean I will stop developing stuffs or maintain G’MIC, but it’s possible that I will spend more time on other tasks for the project, such as advising other developers, responding to people on the forum, doing more communication around the project, etc.
I really think the next features I will add to G’MIC will be quite minor, mostly improvements to existing things and bug fixes (but I may be wrong, as often ).
These are the reasons why I think releasing a new major version 3.4 is the right time (as well as the length of the 3.3→3.4 Changelog).
And perhaps it’s also time for me to take a slightly longer break than usual
Today, I’ve built new binary packages for the 3.3.7 development version, so do not hesitate to test.
Feel free to also give me your opinion and your vision of the current state of the G’MIC project.
Cheers,
David.