Glossary · API · Extending · Ops

Gggl is an image processing library inspired by GEGL, this library is designed to do what gegl will be designed to handle; image processing operations catering for Gimp and many other applications. Gggl is a version of GEGL that tries to be as simple as possible, but not simpler.

Note: gggl is not actively maintained, the focus at the moment is using concepts and techniques developed in gggl for making GEGL happen. The first thing that was abstracted into it's own library was babl which provides pixel format conversions.

Applications using gggl should be easily migrated to GEGL, especially if they use gggl through a wrapping layer, like a language binding (ruby), or a wrapper providing higher level abstractions like oxide, for use in applications like image manipulation programs as well as video editing/compositing applications like bauxite.


The API exposed by gggl and GEGL boils down to manipulation of a DAG (Directed Acyclic Graph), through the same calling semantics it should be possible to utilize hardware acceleration for all, none or portions of the processing. Through mlt gggl can probably already do hardware based decompression of video.


When using gggl through any of the interfaces, the Operation reference provides knowledge of which operations are available, and how they can be manipulated. These operations are not currently distributed with gggl, but can be downloaded in tarballs available from the same location that gggl is downloaded from.

Construction of processing graphs, can be done directly through either the c API or the ruby API. For information about extending the system with new operations see the Op development pages.


Gggl is a library not an application, but since people want screenshots for everything, here is a graphical representation of gggl internal state like it is when rendering an oxide composition implementing a filmgrain effect).


The “screenshot” is created by setting the GGGL_DOT_TRACE enviroment variable, this makes gggl write a pid / count stamped text file to /tmp every time processing is invoked, the resulting text files can be processed by graphviz to generate postscript/png.

other software

Gggl was created as a testbed for GEGL, to exercise the functionality of gggl oxide has been developed as a higher level abstraction. Oxide is a NLE, compositing and animation engine using gggl.


gggl is licensed under GPL.


look in ../files/


The cvs repository is currently situated on pippin's laptop, the best glimpse into a semi synced up version is probably.