Video summary
The GIMP team is currently finalizing the release of GIMP 3, marking a significant transition from the long-stable GIMP 2.10 series to a new version built on GTK3. This shift addresses several critical limitations of the previous architecture, most notably improving support for graphics tablets by enabling hot-plugging and restoring pressure sensitivity without requiring users to plug in devices before launching the application. Additionally, GIMP 3 brings enhanced touch screen capabilities, better handling of high pixel density displays such as 4K monitors, and improved native integration with Linux color management systems like Wayland, which was previously difficult to support effectively.
A major focus of this update is the implementation of non-destructive editing through a new layer effects system, allowing users to apply filters and adjustments that can be toggled on or off and edited in real-time without permanently altering the original image data. This capability relies heavily on the GIMPgle library, which has evolved over decades to provide accurate color handling using floating-point computations rather than limited 8-bit integers. The team has also streamlined plugin development by adopting GObject Introspection, a technology that allows plugins written in languages like Python, Lua, JavaScript, and Rust to interact seamlessly with GIMP's core functionality while significantly reducing the amount of code required for common tasks.
Beyond technical upgrades, the project is undergoing substantial organizational and community-driven changes, including a new flat-design logo and a more active development cycle that releases micro-uploads every few months rather than waiting years between versions. The team is leveraging modern continuous integration infrastructure to automate packaging for various operating systems and is actively expanding its documentation and translation efforts with daily updates. Looking toward the future, the GIMP team aims to foster deeper interoperability with other free software projects, envisioning a service-oriented architecture where applications can dynamically call upon specialized tools—such as vector editors or animation software—to process specific tasks before returning results to the main application.
Read the full video transcript
hello everybody um so I'm I'm kind of
alone here but actually it's a gim team
I represent gim team and so I like
please gim team say
hello
yeah so and if if any of you want to say
something at some point just tell me and
grab the mic so yeah basically okay we
we
hoping at some point that we release gim
3 for GM but didn't happen uh so it's
it's it's not is there it's very close
we still have bugs and crushes and stuff
like we are really on the last last uh
stroke to um game three so well so just
one slide for the game 210 which is our
current stable release so basically
right now we are in a state where we
even said stop backporting features like
it we just reled like what last week uh
do 10 two 2 10 38 which might be our
last actually in the 210 maybe we'll do
a 21040 if we find some annoying bugs
that uh we want to fix because some
people always like have stong on on
series uh especially on Linux because
it's stable uh distribution concept
especially TS so sometimes some people
may stay on 210 for a few more years I
don't
know so that's the stable release Branch
so now the interesting part is uh gim
three uh that's what we are working on
so like the main thing on I mean not the
main thing one of the main thing in game
3 was uh moving to
gtk3 uh so that's also why uh three is
gtk3 and gtk2 was schemed to Al 210 210
28 26 and
everything I mean I don't know if you
know what the origin of gtk of course
what the g means in gtk it means
and tool kit so that originally
comes from our project from a Time long
before I so like gtk3 by itself um even
though we had to add some work above it
but brings us a bunch of like better
Graphics Tablet support especially like
it's kind of same but hot plug for
instance it's uh in game two all the two
there annoying steps that you had to
have your tablet plugged before starting
if you started if you plug after
starting it will work as a mouse
but you won't have pressure sensitivity
this kind of stuff so like uh I work
with she does like classes University
with and it's always kind kind of a
bit like embarrassing when the the
pressure doesn't work like a did did you
uh did you plug the tablet before after
starting G you know like it's kind like
you know so that's a kind of little
detail which actually not so much little
details um well we'll have touch support
we kind of have in a few places but we
don't have like fancy tou support yet it
won't be for game three the fancy uh
like you know like moving or we have
rotation but not with fingers you still
rotate with with like control and middle
click and like this kind of convers
rotational Zoom but we don't have yet
but eventually we can since with
gtk3 uh well better High pixel density
uh spot uh you know
displays uh especially for Icon and
everything people have very small uh uh
icons on the huse 4K monitors uh like
with gim stre it's uh much less a
problem even though there still a few
issues like fractional scaling and
everything so they still it's still not
perfect but it's a lot
better well on support uh for people who
use Linux even though it still doesn't
have color colorimetry so that's for
actually we don't use W on a day-to-day
basis for production but uh uh but well
eventually it will go there and with gtk
stre it's a native well on support and
uh and caros around yeah here
also BR so it's still it's related to
wellan but in in Linux we have the
concept of tablet pad
interaction which uh like
basically um you know like what people
used to do is like uh so you have like a
shortcut to configure shortcut like
control uh control a select everything
okay so what you used to do is like you
you you configure like this button on
your tablet pad to make a control a but
now with this it's only on one on uh you
can configure the button to do the
action so not not needing to map a
shortcut basically so which is uh much
nicer it's kind of more semantic you
it's the button does this action not the
button does a shortcut which does a okay
so yeah that's this kind of stuff um so
space invasion is our project for like
color correctness so we have a in
uh we have this uh the giggle project
and babble project which are two
libraries which were born out of the
game project I'm like uh well they were
Bor like I think now the start because
if you look at the git log it's like all
like 20 something years ago for the
first comit uh but with it started to be
really integrated like 15 years ago with
two 28 a bit 210 a bit more three even
more and like and it's basically what it
means is that we have more and more uh
correct colors uh because of more much
better
support uh
for uh uh like virus formats and uh and
like also like um it's also it makes c a
lot more maintainable because colors now
semantic in our code before this we had
like to move bites and like try to keep
uh like
the um meaning somewhere in comments or
something or just know that when we only
move this in this color space or
whatever now the color is like a color
it brings its own semantic and it's it's
a lot much nicer Cod I think pipin wrote
me something that I yeah like the uh the
float um uh so everything internally is
doing mostly in float competition and uh
pipin is which is the mainten of gagle
unfortunately could not come in today um
he did a lot of work on optimization and
he does a lot of work actually on small
embedded devices and everything so he
really cares about optimization so it's
very it's fast stuff and like we have
very fast we have as you was saying that
a lot of uh type of uh stuff which are
actually faster with flat
implementations and when we do is uh u8
in integ 8 bit Integra computation like
with with gigle so a lot of stuff are
like very very good very fast and we
have some LM implementation but it's
like for export stuff uh eventually what
we want is have CK back end
um which means like your image can be
like stored in cmk with cmk semantic and
everything that's also some some big
walk which was brought also into gagal
and then into and um yeah so that's
it we have ux improvements like the
multi-layer selection so I know that
sometime I say this sometimes some
people say that's basic stuff but for
it was a huge thing
because basically the world Cod base was
assuming that they there can be only one
layer selected at one time at one point
in time so basically I worked on this
for like six months or something like
that just like to to have uh like all
code uh be able to expect that it's
possible there are several layers
selected what what happens then uh
that's kind of stuff and uh the floting
selection was like a concept which
actually is powerful in some cases but
in a lot of cases some people don't
understand and it's just like one step
additional so people who use maybe
you know what the floting section is you
know when you do a control a copy paste
uh and then we have like this
intermediary thing which is a floting
selection instead of having directly a
paste into a new layer or something like
that and um any yeah soft proofing also
there was some improvement we have now
have a small welcome dialogue after an
update uh of which can
also there's a checkbox you can keep it
at every start because it's also has
this part where you can just create new
image from here open previous images
this kind of stuff
so uh okay I don't remember what demo I
wanted to do for this so so this is uh
wait what
demo yeah it's okay nondestructive
editing uh like so okay that's something
we at some point we we were like this
well okay 3 is like this and 32 will
have NRI layer effects but in the end
someone just implemented this in studio
I mean the all backend was has already
been there or like built by like dozen
of other developers uh for years and
years uh including Mitch was my comment
now also could not make it unfortunately
today did a lot of work so it was just
like the last part was the UI basically
and which is not finished but like we
thought it was good enough for games
because it's just so huge so yeah and we
have more nondestructive editing in the
future but like that's already one huge
stuff on this like this is a demo
[Music]
uh
so basically here it's a okay it's it's
a text with L world and
uh where's Mouse
okay
so oh okay well okay un like oh sorry I
don't know why so the text
is I
can yeah okay so I just edited live
because it's actually okay I don't see
where is my mouse it's actually a layer
effects there that I add did in advance
so like one is whatever it's called
and so like it's just text it's just
sorry just simple text okay Simple Text
layers with effects above it so it means
you can just uh switch them on off and
uh you can type stuff it's it's it's all
well it's layer effects you know this
from other softwar but like for
it's huge because we until now people
you had like to to B make the effect so
a lot of people what they used to do is
most people most professional what they
used to do is like make a copy before
the effect in case they want to change
Stu but here now you can like I mean in
fact you can also like of
course I didn't show this but you can
edit edit the effect okay I have no idea
where the mouse is okay here so I just
do random stuff but like you know like
okay stuff happens so of course you can
uh just you know just so it's yeah non
destructive stuff so you can edit the
effect and
everything
yeah
okay okay
uh okay that's right now you saw there
was a little like small popup what we
want eventually is more like having the
effect like a small tree above so layer
which has the effect so you could also
have several effects and of course I
didn't show this but uh effects have
mask uh uh like for instance here in
this example we see
the mask thumbnail here and so here the
is only a part of the screen uh same as
layer mask and
everything uh this The Mask already
exists except that right now you cannot
edit it eventually we want to be able to
edit the mask so of course like just
like you edit your
mask so that's the spec uh what we want
to do
eventually
um yeah so lot of stuff like we worked a
lot on the updated uh uh API which is uh
so well all plugins will break uh like
the two gim two something plugins
because we we mve to like a major
version so we thought okay that's a time
where we want to break uh API if if
anytime because we are like we are very
conservative so we don't actually break
API often like the normally the wall of
the two series uh so like 20 years your
plugin may have deprecation warnings but
they won't they should still work if you
rebuild them uh and that should be the
same for gim 3 but between gim 2 and gim
3 plugins will be updated so uh uh so
and some of the stuff we worked is like
a lot of G generation stuff so actually
like there plugins where we removed the
uh hundreds of lines and replace by like
five line and it's the same UI because
it's generated from properties of the
plugin like kind of stuff now we have
bendings so it's G object
introspection um for people in community
it's like this technology which
uh
introspect uh from C libraries from C
API into like so we we can have a lot
more but that's the one basically where
which we tested and know we work and we
even have a demo a demo plugin for
Python 3 Lua JavaScript vaa I think
someone even like worked on a rust
bending but it didn't uh commit it yet
and uh script to is special this is the
only thing which is legacy and improved
a lot but doesn't use the object
introspection and gigle operation uh
know like G operation like very much
first class citizens they can like G
operation the filters so basically it's
layer effects so there something very
big which I don't say about the lay
effects which is like you don't have
like a small stupid list of 10 effects
okay so any gigle operation is an effect
so it means like anyone can make the
effects I and just like I don't know how
many uh uh effects we have by default in
giggle but you have like doz of them
like and and like people uh actually the
one which I just showed before was uh
like the gigle style stuff is like
someone who was making a lot of effects
who still makes a lot of effects and
this one was in the end like cleaned up
and included as as gig but was like so
but before this it was external so yeah
so that's that's actually a very big
stuff and you don't even also you can
even put them in menus now we have some
metad data so in your gig effect you you
have some metad data where you say why
you want it to in G
Manus so you can put it and you can
search for it and yeah so that's
important stuff uh
yeah sure was that's that's
yeah sure yeah yeah yeah because when
you used to okay like the old style
it was even before to10 right um people
used to have like ggle plugins and so if
you have
a UI dialog and you put settings and you
say okay and then it's it's yeah or
sometime you have like really small PR
like on on the dialogue like something
like is it good you say okay and then
you wait for 5 minutes and then you get
the result and say ah it's not good
control Z like undo and retry everything
so okay so giggle operation is as you
saw here it's like first is fast if you
well if you do good code because it's
still code so uh it can be fast and
giggle by itself is very good giggle is
like you can even work on image fast
bigger than memory because it's it's
handles the all step for us so it has
back end and everything if it's bigger
than memory it just goes uh to a a dis
back end basically uh but you don't we
don't even have to handle this kind of
stuff but that means that you can work
on very huge images and Liam is an
example of such thing because uh is like
uh is scanning documents in like huge
huge stuff which are like bigger than
the memory that probably all of you have
on your computers
um so but the on that's the kind of
stuff which are not a problem at all it
become slow slower of course but it's
just doesn't crash and it just works so
yeah as I say like yeah GLE is really
really fine uh fine
uh
software okay so demo I'm not sure what
uh so uh well
what's H oh it's
it's more in future I mean even though
it's present
also
um so basically a lot most stuff Games 3
is like a huge huge walk field so I only
put some of the like most like fancy
stuff and uh and so basically what right
now we end up face well I do a lot of BG
fixing and like some of last user
interaction like stuff like we say we're
not really completely fine with this to
to have something clean and like neat
and API stabilization so the API still
changes right now because there are some
stuff as I say we care very much about
uh um uh backward compatibility so we
are breaking now kind of widely the API
right now but after this we care that we
won't break it so that's why that's one
of the big issue right now the big stuff
is that we want to have like uh good
enough API that after this we we don't
feel like we made a mistake uh uh so uh
so that's one of the big stuff that
still has to is happening right now uh
yeah and we have also a few space
Invasion fixes even though this can also
go later because that's just long-term
project the space Invasion project
started like 10 more than 10 years ago
so I think in 2012
started uh
yeah around because it's not only
called is like a big community so
so one of the thing you may have noticed
is that we uh uh change the logo so
that's a project mostly led by Arium
here and uh but was a team project
because it's very important for us that
stuff we was made as a team and during
meetings and uh exchanging stuff on IC
and everything so so the IDE was so
that's the old
logo uh and that's the new one okay so
it's flat design like you know new
trends and everything uh we have to go
flat and everything so so this and the
brush is also a lot smaller because they
were like a few design issue is the old
one for instance the long brush made
that uh if you do a square like this
actually and you put it on the other
logos of the same square uh logo
you seemed very small
that was like a kind of design book like
and some people were like we had reports
about this like people make screenshot
Zogo in in Windows for instance where
you have like squares like this of all
software of the same size but like it
looked like you have like a very small
logo actually the fight was the
same size but because the brush was too
big they were like space white on on
right and so it looked small and well
and um yeah but we it was very important
stuff that it had to stay so to be
something simple very few colors but
also keep the same uh like
recognizability we didn't want to go to
like something uh completely different
uh that was uh and also a lot of people
in the community like the logo like
Wilbur it's called is called Wilbur or
she we don't know um it's non she she is
they are nonbinary
so uh yeah so versioning uh we had this
thing where kind of semantic like
versioning where we um M so it's three
numbers right uh so for the next one
will be 3 Z so the micro version the
last one will be only bu fixes the minor
version will could be have new features
and so micro version basically it's my
gtk update
um so we uh we kind of broke this into
10 on purpose because people were like
oh I
are no new updates in six years or
eight years like for instance 280 was in
2012 and uh 210 Z was into uh uh 19 18
18 so six years there were actually a
lot of updates every uh every two three
months we have updates but this bu fixes
so people kind of like when it's a bug
fix people think it's it's not work so
uh so they consider that
development was dead so we s okay like
for 210 we started to do like we also
bring new features even in micro so
every few months we had new features so
now for 30 we getting back to uh the
same logic as we used to have except
that now basically we are targeting the
minorities so we direct Target 32 we may
have like micro releas with B fixes only
and uh uh yeah and one of the thing
which also makes it possible is uh the
infrastructure we have a much nicer
infrastructure nowadays with continuous
integration and like packages in uh
Linux windows and everything and uh and
like when we make a release it was like
all made by hand with like we have long
list checklist uh like this no uh no we
have the infrastructure which makes
windows
packages and uh table for sources and I
have script to to text directly from
cons integration and and send them on
the on the download server and
everything it's it's which makes which
allows us to do much faster
releases yes so yeah um much uh nicer
also like mirror infrastructure now
which uh with GOP with it's my mirror
bits which is a program by uh by the VLC
team which you may know I guess
everybody knows VLC and uh so yeah and
we have big committee or someone like
recently updated our books page on the
website which was kind of dead until now
so I made some script and um we kind of
organizing in Gan stuff like with
generation of the HTML so it's easy to
count the number of good books and we
had like 349 books which were reported
to us so probably a lot
more uh in like a dozen of countries uh
and just for 210 apparently at least 44
books at least 44 books were reported to
us published of about on to 10 so
yeah we also want to try to do more SP
screen like we used to only do them uh
on the Min
verions uh well we could KN might every
every few months but like before this
means spash only change every six years
or something like that so now we want to
like feature more different kind of
artworks illustrators
photographers these designers and try to
to uh find and change more on the splash
screen so yeah okay that's the fing is
uh we try to organize ourself um I
wanted to announce stuff but it's not
ready yet so I'm not going to just is
work in progress and we hope that we' be
able to do something uh uh nicer to like
kind of uh grow but uh kind of we are
something which is like is very
much a community project so we're not
company
something like and we don't want to be
so that's something which was the harder
part trying to protect this by allowing
us to grow and maybe someday we'll talk
more about this part so we getting uh we
in the last few years some contributors
kind of walked a bit away even though
they still around but uh but we also
have new contributors coming in
lately uh so um uh like Bruno Lopez is
doing a lot of stuff on packaging like
like Microsoft store and even made app
image but also lot even just con
integration stuff and well next is main
jaob main of the gim documentation which
got a lot of love lately it used to be
kind of not in such a good State except
for translators we always since we r on
Gom infrastructure we always have
translators but the script and the
contents text part was not SE Scrat
shape but jaob really took this over
this and it's getting a lot nicer now we
like daily daily updates on the
documentation on docs. g.org is daily
updated and everything and and uh yeah
and the where is Alex SI is like one of
a Google Su of code uh from two years
ago he made two Google some of code as
a contributor student and know he is
here as mentor and uh basically lately
is after me a biggest second contributor
and uh yeah so we kind of get a nice
team
uh so the future uh well we have now on
this on the website we have developed a
website now we have actually I broke the
road map in small Ro map because so
say is a community F and what it means
that we don't have like a hard road map
where there's not someone who decide for
the others where really it's like road
map is more like the other around people
are interesting stuff looks something
will happen so we say then we put it in
the rad map to to say that to show
people but it's in this way around so in
the rad map I kind of have this small
part which are basically interest of
current contributors so like uh more n
destructivity like like uh we I worked
stuff on link layers and everything and
which basically are are layers which
link other files and
uh
uh well space Invasion will always
continue better tort we have like uh
another Google some of uh contributor
who is Al is doing now his second year
and we did a lot of nice stuff with
textle like uh Liam already talked about
him a bit in this uh talk yesterday so
uh and he's doing again and that's his
area of interest and so it's very
hopeful that uh text tools uh and text
rep in general because font and
everything is where like a lot of stuff
were bugged in our in
our dependencies uh some part are not
that maintained anymore in the
dependency
like and we kind of walk around this now
with custom go code basically so they
are fonts what which
went uh uh loaded now are loaded and in
a bunch of other free software they rely
on same dependency and yeah and but for
us it works for others no uh yeah so ux
Improvement that's something we really
care about so we are really working on
like and uh actually it's a lot with ar
since it's will be the next talk we'll
show a bit what we do and uh so since I
I work with someone who actually use a
software every day every hours a day uh
well uh I get all the complaint possible
so so yeah so that's something we we
like just try to improve the software to
make it
usable so yeah extensions that's
something which we want to make even an
extension platform eventually where
people can like Firefox you know you can
install extension in single click and
install update and search extension
that's something we want to have in game
to yeah lot lot of stuff uh animation of
course you will see in the next talk
animation game oh yeah oh that was an
very old video I had like it was like
from 20 220 I but uh uh basically link
layers I so like you can have you can
link to another image and then you can
update it but okay so the first part is
just is just a PNG so it's not
interesting but just after this well but
okay I save
it and then okay and then I get it it's
updated here okay but that's that's
annoying part but most interesting part
is uh like you can also like load for
instance uh Vector images which I
do and uh and so like after this I will
open inscape I can modify the image in
inscape and uh and it automatically
updates in my layer here live uh that's
all Liv that's not not trick right and
uh of course it means also like the
layer I can scale it it will always be
nicely scaled because always scale from
the from the
uh original vector image so uh that's
kind of uh so this part never went into
uh because I never refinished all
the little details and I went to like
more important stuff but that's the kind
of stuff that after three game three is
probably it will be in game two three 32
I hope uh this kind of stuff and um
we'll also have probably a vector layers
which is like a Google some of C like
like more than 10 years ago was started
and it kind of bited in the branch but
like um well Alex I think or maybe
someone else uh one of the comp recently
tried to took over the branch and and
made it work again so that's the vector
layers also yeah here I shows that yeah
so that was very old video but uh it's
in still in a branch and yes it's um
okay and um as CX is like so pipin uh
beel and uh gigle m is what name is
it
okay uh pipin uh Bon giggle Manna is
also like his last baby right noise
called CTX it's basically a vector Rend
Library well probably won't be happy if
I just say it does lot more more stuff
it does a lot of stuff but uh like yeah
Vector end basically for us and um
and I will show you
[Music]
something
okay so okay so I just show you this
basically he sent me this
script okay and
uh yeah just show okay few can I zoom in
in a text file I have no idea Control
Plus Control
Plus but just a script control no it
doesn't it's non text I don't know how
much Fe there
is uh
okay zo text so text I not I don't
remember what size it told
me let's say full
HD bit okay so so there is
uh okay so there is this uh setx script
uh so it's a gigger operation which
itself uh uh calls setx as a back back
end so so G operation means a filter
right so you have this uh it does some
stuff because there's a default script
in there and uh
uh so he prints s CTX
logo where is ah sorry okay where am I
okay T contrl
C if I can find my mouse I have no idea
it's
here control D
okay and this and like so it it print
this stuff and like this is a play
button
okay
so so this is like random live uh uh by
just part
of oh yeah sorry
so so I will just write uh read what
people said while you watch it it's time
to teast the de demo Gods uh unless
hasn't been live live demoing before
it's already information dance um
okay sorry maybe this is not interesting
uh so it says yeah currently CTX as
currently B bundled with gagle doesn't
take advantage
of of sim which processors
uh how do you
call Sim Sim simd
simd yeah yeah a acceleration so so it
could be even much uh nicer uh it
doesn't have like the micro C flag set
so it can be a l better like so what's
is demoing that is doing a lot of
animation and everything with text and
the vector it's basically all Vector
renders like live live demo in this
script here so
um as I say like it cares also a lot of
about optimization like he he does most
of his programming small microcontroller
cards uh which have uh like just no
memory and no no processors I mean very
small memor so like that's why giggle
bubble CTIC and everything is very well
optimized so yeah that's a that's part
of the future of this kind of
project uh because we really consider
that all the giggle bubble CTIC are part
of the game project right I think it's
finished right
okay oh yeah because I'm on
the okay let's go
back but that's
basically fin oh yeah in future that's
something which is which uh which are
very important to us is uh I would like
eventually that's also why I loved uh
the workshop we had yesterday with
organized by Liam is that uh I we do
believe that uh like
the free softwares Graphics free
softwares all non Graphics sofware
should work a lot better integrating uh
with each other uh like uh well Alam
used to work for for 10 years with appri
software like a famous very very famous
Suite that doesn't need to be name I
guess and uh so one of the things which
she really miss is uh uh well the well
integrated part you can like have files
and like bring them elsewhere and it
does the right thing or and uh and
that's really something at some point uh
right now we don't have a lot of time
which is why I didn't uh Focus too much
on this in my development the last few
years but that's at some point when I
get to free some of my for this that's
something I really want to work with
other projects so really like like
basically what I showed before is like
oh I'm working on inscape and keep in
the same time and this kind of stuff is
a something I want to do but even more
like maybe like a service where like a
software could call another one we do
have something like that with duct table
for duct table and Ro therapy for
instance for ra development right now
when you open
uh raow image in it actually calls
duct table Road therapy you do your Ro
development in there you close and Road
therapy send it back to so right
now it's all done like by because we all
friends so they make special
um um flag for us so that uh we can they
know we can call them and they bring us
back the image but like we love to have
something like more generic like a
service you could like a software could
like CR maybe will say oh I'm able
to process uh r images and incap say I'm
process Vector images and kind of stuff
and like cool like any software could
like call and say I want this uh R IM to
be processed and brought back to me
after this and then you say oh what what
do I have in stock for you or which one
do you want to open this kind of stuff
that's really that's the kind of stuff
we really an animation too like G pass
some animation we use a lot blender too
like sending uh and like editing in
but video part editing blender real time
no no silly exports and everything and
uh uh which waste a lot of time like
this kind of stuff which is from for us
something which really want at some
point in the
future yep and that's it