GraphSynth2: software for generative grammars and creative search
With GraphSynth, one can design, implement, test, and automatically invoke grammar rules that transform a graph from an initial seed into a creative design. Using Microsoft Visual Studio .NET, the researchers at UT Austin have developed the tool which is written in C# and which stores rules and graphs in a common XML framework.

Recent Code Improvements for Robustness

I have been making numerous changes to prevent GraphSynth2 from crashing. It has already run fine on my machine and have wondered why it didn't work on others.

If you've tried this software before and given up on it because it crashed, please try again and/or let me know what agony you faced. Also, I am happy to receive the ErrorLog.txt file, now found in your C:\Users\\AppData\Roaming\GraphSynth folder.

Some interesting patches:

Welcome new users!

This site is dedicated to using Graph Synth, which, I would surmise, you are curious about. Download it and subscribe to the RSS feed or Syndicate (orange button on lower left). I hope to post more instruction and examples in July and August.

Representation

The representation scheme is explained using the four-bar mechanism given below.

Four-bar MechanismFour-bar Mechanism

The figure above is represented in our methodology as given below.

Graph Grammar Representation of a four-bar mechanismGraph Grammar Representation of a four-bar mechanism

MechSynth: Synthesizing Planar Mechanisms

MechSynth aims to synthesize planar mechanisms using graph grammar techniques along with tree-search optimization. There are computer programs that work with four-bar and six-bar mechanisms but this is probably the first time that an attempt is made to create an automated design program that is not restricted to particular topologies.

The outline of the project is shown in the figure below.

MechSynth - Research OutlineMechSynth - Research Outline

GraphSynth 2 critical update

I have made a number of changes to GS2 that make it more stable. The program now correctly shuts down, there are fewer crashes when working with node properties, and the issue with presenting dangling arcs has been fixed.
Please update.

Can rules be made automatically?

Can rules be made automatically? is hosted on the Automated Design Lab dokuwiki.

Things to do to this site

There is so much to add to capture all that has been done in the last 5 years. In addition to the empty projects, this is brainstorm of additional topics.

  1. videos
  2. MEMS rules (S. Jawalkar)
  3. post all to do items for code in code-dev
  4. improve figures in "Intro tutorial"
  5. add proper GPL text to code files and web
  6. fix email problem for creating new users
  7. post necktie rules
  8. post routing rules
  9. post L-system examples
  10. post a translation to ContextFreeArt.org rules

What can one do with the software?

Originally, GraphSynth was designed around make and visualize graphs, and there are many tools available to create these ranging from GraphViz to Visio. What makes GraphSynth unique is the creation of graph grammar rules. Recently, provisions have been added to represent shape and string grammars.

Therefore the things that GraphSynth can be used for are:

  1. making graphs
  2. making graph grammar rules, string grammar rules, and shape grammar rules
  3. testing, creating graph layout mechanisms

new website, new code, new goals

This is the first post of the a new website. The re-vamp of the site corresponds to the "completion" of GraphSynth v.2. There is much to add, and you can now contribute as well. Please bookmark and/or subscribe to the updates (the orange link under the word syndicate to the right).

Happy New Year! I hope 2010 will be a big year for this software.

What is the point of GraphSynth?

GraphSynth was created to provide an easy way to create grammar rules that encapsulate design knowledge. The mathematical and computational research in generative grammars had not previously produce usable software that can be leveraged to create meaningful grammar rulesets and automated results. This is the goal of GraphSynth.