GR is a universal framework for cross-platform visualization applications. It offers developers a compact, portable and consistent graphics library for their programs. Applications range from publication quality 2D graphs to the representation of complex 3D scenes.


GR is essentially based on an implementation of a Graphical Kernel System (GKS) and OpenGL. As a self-contained system it can quickly and easily be integrated into existing applications (i.e. using the ctypes mechanism in Python or direct calls from Julia with ccall syntax).

The GR framework can be used in imperative programming systems or integrated into modern object-oriented systems, in particular those based on GUI toolkits. GR is characterized by its high interoperability and can be used with modern web technologies and mobile devices. The GR framework is especially suitable for real-time environments.


GR was developed by the Scientific IT-Systems group at the Peter Grünberg Institute at Forschunsgzentrum Jülich. The main development has been done by Josef Heinen who currently maintains the software.

GR3 is a software library for simple visualization of 3D scenes. It was developed by Florian Rhiem as part of his bachelor’s thesis. GR3 is written in C and can also be used from Python or Julia through a wrapper module.

Starting with release 0.6 GR can be used as a backend for Matplotlib and significantly improve the performance of existing Matplotlib or PyPlot applications written in Python or Julia, respectively. In this tutorial section you can find some examples.

Beginning with version 0.10.0 GR supports inline graphics which shows up in IPython’s Qt Console or interactive computing environments for Python and Julia, such as IPython and Jupyter. A simple IPython notebook example (converted to HTML5) can be found here.

Getting Started

If you want to get the very latest version you can clone the GR repository from GitHub:

git clone

The GR framewok is also available on PyPI:

The installation method depends on the environment in which GR will be used. For further information please refer to the installation documentation.

Once you have installed the GR framework, in Python you simply need to type:

from gr import pygr

At this point, you should browse the gallery to get an impression of GR’s capabilities.

For the Julia programming language an official GR.jl package has been registered. You can add the GR framework to your Julia installation with the Pkg.add() function:

using GR


This is the documentation for the GR framework.

Other resources

Indices and tables