In the Groove - Part 2


Tooling is essential for practical applications in any field. For Graph Transformation, one of the ways to quickly prototype your graph-like domain is by developing a model in GROOVE, a standalone tool that will give you isomorphism checking, state space exploration, and model checking based on a graph grammar consisting of a set of (optionally typed) rules and start graph, optionally complemented with a control program.

In this second part of the tutorials on GROOVE, the following advanced features will be covered: Nested rules, rule parameters, control (functions and recipes), and model checking. Participants are invited to install a local copy of GROOVE and to download the .zip file with examples from the tutorial (see below).

Friday, February 23, 2024 15:00 Europe/Paris
GReTA seminar

The talk will include a tutorial on GROOVE.

  • The software itself is available on SourceForge (Note: please make sure that you download version 6.6.4, the standard version as of January 2024)
  • The mateirals for the tutorial are available here.
Detailed GROOVE installation and usage instructions (click here to expand)

The GROOVE Tool Set

Installation and use

The bin subdirectory of the GROOVE directory (into which you unzipped the
downloaded archive) contains jar files for each of the toolkit programs:
e.g., Simulator.jar, Generator.jar. You can use these in either of the
following ways:

  • In a file manager window opened on the bin directory, double-click the jar file;

  • In a command line window, run java -jar GROOVE_PATH/bin/Program.jar [parameters],
    where GROOVE_PATH is the groove directory and Program is the toolkit
    program in question. If you use -h as parameter, you will get information
    about the (other) command-line parameters.

See usermanual.pdf for instructions on how to use the GROOVE Tool Set
(including these installation instructions), or quick-reference.pdf for a quick
non-comprehensive overview.


Here is a brief list of the features supported by GROOVE. For details please
consult the included user manual or quick reference poster,
or the YouTube demos on the GROOVE web site.

  • Visual editing and simulation of graphs and graph transformation rules
  • Global rule priorities or control program
  • State space exploration using customised exploration strategies
  • Model checking generated transition systems over CTL and LTL formulae
  • Regular expression matching and label wildcards in transformation rules
  • Primitive data types (int, string, bool and real) with corresponding operations
  • Nested (i.e., quantified) rules
  • Typing and inheritance through node types
  • Prolog querying of graphs and state space


The installation includes the following tools:

  • Simulator(.jar): a GUI-based tool that lets you construct, simulate and
    model check rule systems visually;
  • Generator(.jar): a command line tool that lets you simulate and model check
    rule systems without the performance penalty of the GUI;
  • ModelChecker(.jar): a command line tool for CTL model checking;
  • PrologChecker(.jar): a command line tool for executing Prolog queries on an
    explored grammar;
  • Imager(.jar): a command line or GUI tool that supports conversions from
    GROOVE graphs and rules to other visual formats.
  • Viewer(.jar): a stand-alone (GUI) viewer for \GROOVE graphs and rules.


Any comments, bug reports and reactions are welcome, either through
the Sourceforge trackers or through an email to

Arend Rensink
University of Twente

Important: installation instructions specific to macOS (click here to expand)

Unfortunately, the Java version shipped with macOS is not compatible with this project. It is therefore highly recommended to install the OpenJDK via Homebrew as follows:

  1. If you have not yet installed Homebrew, execute the following command in the Terminal app:
    /bin/bash -c "$(curl -fsSL"
  2. To install the OpenJDK environment, execute the command
    brew install java

Assuming that you have downloaded the GROOVE package to some folder /path/to/groove/, you may then test your setup via executing the command

/opt/homebrew/opt/openjdk/bin/java -jar /path/to/groove/bin/Simulator.jar

-> This should open a window with the GROOVE interface. From here, you may then load the examples from the tutorial via the File menu.

Please note that the meeting will be recorded and live-streamed to YouTube:

Arend Rensink
Arend Rensink

I’m a professor in the Formal Methods and Tools group at the University of Twente. Since around 2003 I have been involved in graph transformation; besides theoretical contributions, my work has been visible in the development of the tool GROOVE, which enables rapid prototyping of graph transformation models and their analysis.