What is GUItar?

The GUItar project aims to develop an extensible graphical environment for several combinatorial objects and models of computation, such as finite automata, pushdown automata, transducers, Turing machines, etc. Its functionalities include visualisation and interactive editing, i.e. automatic and assisted diagram drawing; and export/import filters that allow the interaction with several symbolic manipulators.

A first version of the software tool GUItar, was developed together with the FAdo system.That version was implemented in wxPython and included the visualisation and interactive editing for various types of automata. The current GUItar allows the interaction with several automata manipulators.

GUItar is a GPL-licensed, cross-platform, graphical user interface for automata drawing and manipulation, written in C++ and Qt5. This tool offers support for styling, automatic layouts, several format exports and interface with any foreign finite automata manipulation library that can parse the serialized XML or JSON produced.

It includes functionalities such as:

  • Interactive "point and click" creation of automata;
  • XML and JSON description of the automaton structure, styling and geometry of the states and transitions;
  • Socket communication for obtaining and drawing automata represented on the GUItar XML or JSON language;
  • Layout algorithms for state positioning;
  • Embedded ipython shell for real time command line interaction;
  • Exporting for several formats: PDF,PGF/Tikz,GraphViz