GraphSynth is research software to create, edit, display, and manipulate generative grammars. This unique framework stores graphs, rules and rulesets as XML files which can be loaded and automatically invoked to search for creative, optimal or targetted solutions. GraphSynth is publicly available, free, and open-source. Using Microsoft Visual Studio .NET, the researchers at UT Austin have developed the tool which is written in C#.


GraphSynth started in 2005 as part of an NSF funded project combining computational synthesis and graph grammars. The motivation was to create a way to store rules in static declarative XML files as opposed to in procedural code as arbitrary if-then rules. This lead to a very efficient and exhaustive implementation of graph grammars in which a complete context-sensitive grammar is produced. Additionally, GraphSynth includes implementations of the various graph transformation approaches. The double-pushout method and free-arc embedding together handle nearly every imaginable type of graph transformation that is required. Anything not within the capabilities of the current methodology can be added to any particular rule through additional C# functions which are compiled on-the-fly by GraphSynth.

A slow revision period extended from then until October 7, 2008 (download version 1.9) when it was decided to drop a third party graphics library written in GDI++ in favor of creating a GraphSynth-specific drawing and display surface, which is now written entirely as a WPF .NET3.5 application. The main motivation in doing this was to support two-dimensional shape grammars in addition to graph grammars.

Now in the latest addition, GraphSynth is capable of string, graph, and 2D shape grammars. It also supports the addition of graph layout plugins and search plugins which may be used to automate the design of particular problem domains (see plugins and projects) as has been done in over a dozen research projects.

Future Directions

Dr. Matt Campbell:

GraphSynth has been a passion of mine for the past five years. I have written every line of code in the four main binaries, and overseen most of the projects and plugins that use the software. It is my hope that this website will serve as the meeting point for others seeking to use and extend the software.

The following items represent the main aspirations for GraphSynth. For details on more specific code development tasks please refer to GraphSynth2: ToDo.

  • Add hypergraph and other compound graph capabilities
  • While the two basic libraries are fully compatible with Linux and Mac (via the Mono project), create executables to use these libraries for invoking large and complex search processes and visualizing and editing rules and resulting graphs.
  • combine with 3D CAD kernel to realize full 3D Shape Grammar.
  • Create Silverlight or HTML5 applications that use GraphSynth.


Last edited Feb 8, 2014 at 5:21 PM by mattica, version 1