You are here



As a “proof of concept”, Tekmap Consulting tested the GTK+ toolkit as a possible tool for developing a graphical user interface (GUI) for the GRASS software. From that “proof of concept”, the GTK+ GRASS Interface has continued to grow.


The basic concept for the GRASS Interface is to provide easy point-and-click access to GRASS files. The interface builds common GRASS commands around the selected file(s). For example, a single click to set region to raster(s), erase display, and draw.

The main window consists of two panes: a GRASS file list and a tabbed display window.

The GRASS file list, in the left pane, is always visible to the user as a collapsible tree view. The display window, in the right pane, consists of multiple tabbed pages. These tabbed pages let users easily switch between different regions, display sets, and 3-D views.

The interface was developed as Glade project written in GTK+. The GUI can be built with the optional Gtk OpenGL extension. The OpenGL extension provides a 3D interface to the GRASS ogsf library.

The interface has been tested and run on Linux (OpenSuse) and Windows (XP) operating systems.


The features of the GRASS Interface include:

  • Multiple tabbed pages within the same display window. Each tabbed page has a unique display list and GRASS region.
  • Display lists that a user can save and load as a simple XML file.
  • A properties list for display objects. With the properties list, users can delete display objects (layers), turn them on or off, and move them to a different position in the list.
  • Easy point-and-click options for GRASS files.
  • Modules for 3-D viewing, digitizing, and rectifying.
  • Display features for a scale bar, regular grid, geographic grid, vector legend, raster colorbar, and compass rose.
  • Raster transparency and Label display support.
  • Options to save the display as a simple “screen shot” image and as a scaled image set by the user.
  • Vector display properties for line color, line width, line type, fill color, symbol name, and symbol size.
  • Zoom features for zoom in, zoom out, zoom box, and pan.
  • Simple point-and-click measuring.
  • Raster and vector querying.