How Spencer Kimball and Peter Mattis Built GIMP

In 1995, University of California, Berkeley students Spencer Kimball and Peter Mattis set out to solve a major software deficit on Unix platforms: the lack of a capable, free image editor. By architecting and coding the original foundation for the GNU Image Manipulation Program (GIMP), the pair created an enduring open-source alternative to proprietary software like Adobe Photoshop. Beyond creating the image editor itself, their technical solutions—most notably the creation of the GIMP Toolkit (GTK)—laid critical software infrastructure that went on to power large segments of the modern open-source desktop ecosystem.

The Origins at UC Berkeley

Kimball and Mattis began GIMP as a class project while active members of Berkeley’s eXperimental Computing Facility (XCF). At the time, Unix systems possessed no native, free application capable of advanced photo manipulation. Users typically had to purchase expensive commercial licenses or rely on rudimentary command-line utilities. Kimball and Mattis aimed to prove that an extensible, professional-grade raster graphics program could exist as free software. In 1996, they publicly released GIMP 0.54, an early milestone that demonstrated native Unix image editing was viable.

Writing the Core Architecture

Kimball and Mattis built the program's foundational engine entirely from scratch using C. Their primary technical accomplishments included:

  • Memory and Pixel Management: They designed early systems for manipulating large pixel buffers in memory, allowing Unix workstations to perform operations like color balancing, cropping, and blurs without exhausting system RAM.
  • Core Editing Features: The duo implemented the baseline features standard in modern digital graphics, including support for layers, alpha channels, custom brushes, and color spaces.
  • Extensibility via Plug-ins: Kimball and Mattis recognized that they could not write every image filter or format converter themselves. They designed a decoupled procedural database (PDB) and a plug-in architecture. This allowed outside developers to build image filters and file format readers as independent binaries that could communicate directly with the core GIMP engine without requiring full recompilation of the software.

The Invention of GTK

Initially, GIMP’s user interface was constructed using the Motif toolkit. However, Motif was proprietary, which posed a severe barrier to distribution and contradicted the free software philosophy. In response, Peter Mattis led the development of a brand-new, open-source widget system.

He created the General Drawing Kit (GDK), which acted as a wrapper around the low-level X Window System, and the GIMP Toolkit (GTK), an object-oriented GUI toolkit written in C. Spencer Kimball and Mattis migrated GIMP to this new library. This move eliminated commercial dependencies and produced a responsive, modular user interface. GTK eventually decoupled from GIMP entirely, evolved into GTK+, and became the primary graphical foundation for the GNOME desktop environment and countless standalone Linux applications.

Handover and Lasting Impact

By 1997, after releasing GIMP version 0.99, Kimball and Mattis graduated from UC Berkeley and transitioned away from active maintenance of the project. Because they had engineered a modular, well-documented architecture rather than a monolithic code base, an independent community of open-source programmers easily assumed control of development. The foundational algorithms, the plug-in interface design, and the GTK toolkit conceived by Mattis and Kimball remain the structural bedrock upon which GIMP continues to operate.