Here is the running changelog of the G’MIC project, until it reaches next major version 3.6.
It lists all changes made to the project since the latest stable release (3.5.0).
New features:
Version 3.5.4
-
[core-354] Start port of the
CImgDisplay
class to make G’MIC use theSDL3
library for displaying windows. Hopefully, this will enable future versions of G’MIC to natively use Wayland instead of X11. This is work-in-progress, so expect some (big) troubles when enabling it. -
[math-core-354] Add function
epoch(_year,_month,_day,_hour,_minute,_second)
that returns Epoch (Unix time) corresponding to specified date. -
[math-core-354] Add overloading of function
swap()
that allows to swap pixel values in images, with signatureswap(#ind,pos0,pos1,_is_vector)
. -
[math-core-354] Add function
frac(x)
that computes the fractional part ofx
(i.e.x - (int)x
). -
[math-core-354] Add function
wave(x,type)
that defines periodic functions with various waveforms.

Version 3.5.3
- [gmic-qt-353] New filter Rendering / 2.5D Extrusion renders a fake 3D effect from an input binary shape.
- [gmic-qt-353] New filter Rendering / Fluffy Cloud renders fluffy clouds!
- [gmic-qt-353] New filter Deformations / Warp [RBF] lets you warp an image by moving anchor keypoints directly over the preview widget.
-
[stdlib-353] Add command
at_curve
, that extracts image pixels belonging to a spline curve passing through specified points (replace previous commandat_line
). -
[stdlib-353] Add command
resize_displacement
, that uses a specific algorithm to upscale displacement maps, for patch-based image synthesis. -
[web-353] We have now accounts on X and Bluesky in addition to Mastodon. Mastodon messages will be crossposted to our X and BlueSky accounts : https://x.com/gmic_eu and @gmic-eu.bsky.social on Bluesky .
Version 3.5.1
-
[math-core-351] Add function
isfinite()
that returns0
or1
whether the given argument is a finite number or not (i.e. notinf
norNaN
). -
[math-core-351] Add function
isvar(varname)
that returns0
or1
whether the given argument is the name of an already defined variable or not. -
[math-core-351] Add function
abscut(x,min,max,offset)
that returnscut(abs(x) + offset,min,max)*sign(x)
(see dedicated post to get an idea why). -
[stdlib-351] Add command
matchpatch_alt
, a custom re-implementation of commandmatchpatch
that is slower but easier to modify for computing custom correspondence maps between two images.
Improvements / Modifications:
Version 3.5.4
-
[math-core-354] Improve expression parsing to better detect items
$>
and$<
(so that e.g. expression$<*2
does compile without parentheses, as in($<)*2
). -
[core-354] Enter and Return key events can now be checked independently, when managing display windows.
-
[stdlib-354] Command
plot
: Add shortcutsCTRL+O
andCTRL+S
to save current instance and screenshot.
Version 3.5.3
- [gmic-qt-353] Filter Rendering / Gradient [from line] has been upgraded to Gradient [from Curve] and is now able to extract color gradient from a cubic spline path (rather than just a straight line)
-
[core-353] Various code optimizations, to speed up string parsing and concatenation in the G’MIC interpreter.
-
[core-353] Commands
erode
,dilate
,deform
,spread
now accepts arguments with a%
suffix.
Version 3.5.1
-
[stdlib-351] Command
scale2x_cnn
: Implement downscaling fidelity constraint, so that a downscaled version of the upscaled image is closer to the input image. -
[stdlib-351] Command
denoise_cnn
: Changed the network architecture to make it more controllable (add a user-defined parameter for noise level estimation). -
[stdlib-351] Management of simultaneous neural networks has been improved in the
nn_lib
(ML library inside G’MIC). Some of the existing layers have been also improved.
Bugfix:
Version 3.5.3
-
[core-353] Fix command
median
whensize=3
and selected image is a one-column vector. -
[math-core-353] Fix function
find()
when first argument is an empty string (returns-1
rather than0
).
Version 3.5.2
- [packages-352] Fix DLL issue with the G’MIC-Qt for GIMP.
Version 3.5.1
-
[math-core-351] Fix multi-threading issue when forcing the evaluation of math expressions in parallel for images that has less values than the number of threads (including empty images).
-
[math-core-351] Fix function
v(a,b)
that was always returning positive random values whena
orb
were negative. -
[stdlib-351] Command
display
: Fix window title when displaying a single image that has been generated from a math expression.