Very few
people know about GIMP's early history and how it's core
(GIMP's Engine Graphics Library) GEGL had its debut coming
from Hollywood special effects pros in the year 2000. Back
in 1999 a special fork project of GIMP called "FILM GIMP"
debuted by Rhythm and Hues Engineers, they R&H were a
special effects studio that had interest in using open
source software in a competitive workplace environment. FILM
GIMP was different from normal GIMP at the time as in 1999
FILM GIMP had frame layers, brush recording and 16 bit depth
color processing. The project was started by Caroline
Dahllof of R&H and the lead technical engineer who
created GEGL, Calvin Williamson. GEGL was originally meant
to maintain color space conversions like BABL does in modern
days but even back in 2000 (day one of GEGL) it was planned
for non-destructive filters in GIMP to replace GIMP's python
back end. Who would have imagined that goal would take until
2024? In 2024 the only way to make money with FOSS is to be
sysadmin or ethical hacker but back in the early 2000s the
potential existed to make money using free and open source
special effects software like FILM GIMP.
Below are
some direct quotes from 2000-2001 from ancient websites
about GIMP and GEGL taking on the world
"The GIMP is
moving towards becoming a tool for film industry. It's
16 bit developement version is currently being used in
film production by various special effects houses and
there is a current movement to re-architect the GIMP to
handle the new demands. GEGL is a new image
processing library that has been designed to support
different data types and color models. This library will
become the new engine for GIMP 2.0. "
https://web.archive.org/web/20010406185356/http://www.gimp.org/gimpcon/review.html
"What used
to be a simple layer stack in GIMP 1.x, which is combined
using layer modes (Normal, Combine, Difference, ...) will,
with the help of GEGL, become a rendering pipeline which can
be thought of as a tree of layers which is viewed from its
root. The nodes of the tree are operators with an arbitrary
number of inputs and outputs. These inputs and outputs
access rectangular regions of pixel-data, the edges of the
tree. Each edge (comparable to the layers we have now) can
hold its data internally as pixels, vectors, text or
whatever and only needs to provide a well-defined interface
so it can be plugged into the rendering pipeline. A similar
approach will be used for the operators: Simple functions
like color corrections or blur filters as well as affine
transformations and more complex effects are possible."
https://web.archive.org/web/20010603090441/http://film.gimp.org/gimp.pdf
"Chapter 3 “GEGL” reviews the
most concretely realized component of GIMP 2.0, the GEGL library.
GEGL will be the heart of the GIMP 2.0 image processing
engine." "The simple composite of
layers into a projection from GIMP 1.x will
become with the help of
GEGL, a chain (or tree) of
operations, allowing things
like
effect and vector layers to be
part of the composite as well." "Each node
(comparable to a layer in current
gimp) may compute its data internally as pixels,
vectors, text, or whatever is
appropriate for that node, and just needs to
implement a well-defined
interface so it can be
plugged into the
computation chain. In
this way anything that
does image processing
can
be used as part of
the chain: color
corrections, blur
filters as well as
affine transformations
and more complex
effects are all
viewed in the
same way."
When
they talk about "chain of operations" they mean chaining
GEGL nodes like I do such as
color-overlay
value=#a5feb3 id=0 gimp:layer-mode layer-mode=luminance
aux=[ ref=0 gaussian-blur std-dev-x=1 std-dev-y=1
abyss-policy=none clip-extent=false id=1 inner-glow
radius=2 grow-radius=10 value=#b28b00 emboss
depth=12 azimuth=0 dst-over aux=[ ref=1 ] ] crop
median-blur radius=0 color-to-alpha color=white dropshadow
opacity=0.7 x=5 y=8 radius=5 color=black bloom opacity
value=2