In a Nutshell

Gmicky, the G'MIC mascot, artwork by David Revoy. Gmicky, the G'MIC mascot (artwork by David Revoy) DOWNLOAD GALLERY G'MIC Online | G'MIC is a full-featured open-source framework for digital image processing, distributed under the CeCILL free software licenses (LGPL-like and/or GPL-compatible). It provides several user interfaces to convert / process / visualize generic image datasets, ranging from 1D scalar signals to 3D+t sequences of multi-spectral volumetric images, hence including 2D color images. We provide these different G'MIC user interfaces:
1 - gmic, a command-line tool to use the G'MIC image processing features from a shell. In this setting, G'MIC may be seen as a friendly companion to the ImageMagick or GraphicsMagick software suites. [learn more...] | gmic, the command-line interface of G'MIC.
2 - G'MIC-Qt, a plug-in to bring G'MIC capabilities to the image retouching and painting software GIMP, Krita, Photoshop, Affinity Photo, PaintShop Pro, PhotoLine and Paint.NET. More than 600 filters are already available, sorted by category (Artistic, Black & white, Colors, Contours, Deformations, Degradations, Details, Color Grading, Frames, Layers, Light & shadows, Patterns, Rendering, Repair, Sequences, etc.). [download...] | The G'MIC plug-in in action!
3 - libgmic, a small, portable, thread-safe and multi-threaded, C++ image processing library to be linked to third-party applications. Its simple API allows programmers to add all G'MIC features in their own software without much efforts (a C API is available as well). [learn more...] | libgmic, a small, thread-safe, multi-threaded, C++ image processing library to embed all G'MIC features in third-party applications.
4 - G'MIC Online, a web service to allow users applying image processing algorithms on their images, directly from a web browser. [try it now...] | G'MIC Online, the web service to use G'MIC from a browser.
5 - ZArt Screenshot of ZArt in action., a Qt-based interface for real-time processing of video streaming coming from webcams or video files. [learn more...] | ZArt, a real-time video processing software using the G'MIC processing library.
Other open-source projects are known to use some of the G'MIC features: EKD, a free software dedicated to postproduction processing for videos and images. Flowblade, a multitrack non-linear video editor for Linux released under GPL 3 license. Photoflow, a fully non-destructive photo retouching program. Veejay, a visual instrument and realtime video sampler. The G'MIC source code has been registered to the APP (French Agency for the Protection of Programs) by the CNRS, under registration number: IDDN.FR.001.170024.000.S.P.2017.000.21000.

Screenshots

Here are some screenshots illustrating various uses of G'MIC. It shows how it is able to process and visualize different types of 1D/2D/3D image datasets. G'MIC is actually a handy toolbox for many image/signal processing applications. See also the Gallery section for more detailed examples on its use. You can also try the online version of G'MIC to try some of the filters it proposes.

Philosophy

G'MIC is focused on the design of possibly complex pipelines for converting, processing and visualizing generic 1D/2D/3D multi-spectral image datasets. This includes of course color images, but also more complex data as image sequences or 3D(+t) volumetric float-valued datasets. To do so, G'MIC defines a lightweight but powerful script language (the G'MIC language) dedicated to the design of image processing operators and pipelines.

G'MIC is an open framework: the default language can be extended with custom G'MIC-written commands, defining thus new available image filters or effects. By the way, G'MIC already contains a substantial set of pre-defined image processing algorithms and pipelines (more than 1000). G'MIC is natively multi-threaded. It uses OpenMP to take advantage of multiple cores for speeding up the computation of image processing operations.

G'MIC has been designed with portability in mind and runs on different platforms (Windows, Unix, MacOSX). Since 2008, it is mainly developed in the Image Team of the GREYC laboratory, in Caen/France, by permanent researchers working in the field of image processing on a daily basis.

Other interesting technical aspects of G'MIC are:

- It can process a wide variety of image types, including multi-spectral (arbitrary number of channels) and 3D volumetric images, as well as image sequences, or 3D vector objects. Images with different pixel types are supported, allowing to process flawlessly images with 8bits or 16bits integers per channel, as well as float-valued datasets.
- It internally works with lists of images. Image manipulations and interactions can be done either grouped or focused on specific items.
- It provides light but efficient visualization modules dedicated to the exploration/viewing of 2D/3D multi-spectral images, 3D vector objects (elevation map, isocurves, isosurfaces,...), or 1D graph plots.
- It is highly extensible through the possible inclusion of custom command files which add new commands that become understood by the language interpreter. Thus, users can design their own image processing library on top of G'MIC.
- It proposes commands to handle custom interactive windows where events can be managed by the user.
- It is based on the latest development version of the CImg Library, a well established C++ template image processing toolkit, created and maintained by the same team of developers since 1999.

Team

Project Manager and Main Developer:

- David Tschumperlé (G'MIC core, CLI interface, C++ and G'MIC libraries).

Contributors:

Sylvie Alexandre (packaging, testing, filters). Partha Bagchi (packaging). Guillaume Bergerot (G'MIC online). Daniel P. Berrangé (packaging). Sébastien Bougleux (debugging). Jérome Boulanger (code, testing). Claude Bulin (packaging). Aurélien Ceyden (packaging). Matthew Callaghan (filters). Gilles Caulier (testing, Digikam). François Collard (testing). Christophe Couronne (G'MIC online). Patrick David (testing). Frederic Dervernay (code). Maxime Daisy (code, testing). Iain Fergusson (filters). Tobias Fleischer (code, testing). Roberto Ferramosca (packaging). Jérome Ferrari (code, testing, tutorials). Andrea Ferrero (code, testing, builds). Chris Fiedler (gfx). Sébastien Fourey (G'MIC-Qt, G'MIC online and ZArt). Gentlemanbeggar (filters). David Gowers (testing). Silvio Grosso (debugging). Romain Hérault (code, filters). Claes Holmerson (tutorials). Arto Huotari (filters). Dan Leinir Turthra Jensen (debugging). Martin Jambon (filters). Tom Keil (testing, filters, tutorials). Andy Kelday (testing, filters). Sander Knopper (testing, cmake build). Alan Kwan (afre) (testing, filters). Angelo Lama (testing, EKD integration). John Lakkas (filters). | Stephane de la Linuxerie (design). Mahvin (mascot design, design). Mark (translation). Jovana Milutinovich (translation). MareroQ (translation). Ramón Miranda (testing, translation). Lauréline Névin (bindings for Python, G'MIC Online). Tou Omiya (translation). PhotoComiX (testing, translation, filters). Garry Osgood (documentation, filters). Jehan Pagès (code, testing). Stanislav Paskalev (filters). James Prichard (testing, filters). Mauro Quercia (translation). Josef Radinger (packaging). Guilherme Razgriz (translation). Boudewijn Rempt (Krita integration, code, testing). Reptorian (filters). David Revoy (mascot design, testing). Karsten Rodenacker (testing, packaging). Marc Roovers (clut data). Dani Sardà (translation). Jonathan-David Schröder (bindings for Python, Blender nodes). Yuri Shemanin (debugging). Stepanekos (translation). Hazel Stagner (filters). Thorsten "otto" Stettin (packaging). Jan Tojnar (code, testing). Lukas Tvrdy (Krita integration). Ingo Weyrich (optimizations). Martin Wolff (debugging). Bernd Zeimetz (packaging). Matthias Zepper (testing).

Resources

If you appreciate G'MIC, feel free to hang a flyer somewhere to make this project more visible! | To learn more about the G'MIC project, you can also look at the presentation slides!

To cite G'MIC in your own publications, please reference the JOSS article, published in January 2025:

- D. Tschumperlé, S. Fourey and G. Osgood (2025). G'MIC: An Open-Source Self-Extending Framework for Image Processing., Journal of Open Source Software, 10(105), 6618, https://doi.org/10.21105/joss.06618
- Corresponding BibTeX entry: `

  > @article{Tschumperlé2025,
  > doi = {10.21105/joss.06618},
  > url = {https://doi.org/10.21105/joss.06618},
  > year = {2025},
  > publisher = {The Open Journal},
  > volume = {10},
  > number = {105},
  > pages = {6618},
  > author = {David Tschumperlé and Sébastien Fourey and Garry Osgood},
  > title = {G'MIC: An Open-Source Self-Extending Framework for Image Processing},
  > journal = {Journal of Open Source Software}
  > }

  `