By the end of last month, my latest university job came to an end. I enjoyed it but I wasn’t able to continue it because I’m about to start my diploma thesis. Anyway, the goal was to create a drag’n’drop graph editor for signal-flow graphs (Mason graphs to be precise). The editor should be able to compute and present the resulting gain formula depending on the input/output nodes (see the Wikipedia article for details). Luckily, the core functionality was already present in a Matlab script written by Rob Walton, so it wasn’t necessary to start from scratch. So to say, the result is a frontend to either Matlab or GNU Octave (the free competitor) which allows you to interact with a Mason graph in an interactive way. As you might have guessed it already, it’s written in C++ with the lovely Qt framework and makes use of the wonderful Oxygen icon set. This is how it looks currently:
The following two screenshots show the configuration dialog which allows to set additional Matlab scripts to be run after the main computation (for further graph processing or whatever). It also allows you to change and edit the backend (currently either Matlab or Octave):
Furthermore, if you own a Matlab-License and have the Matlab Symbolic Toolbox installed, the resulting equations are also simplified and should thus look a lot nicer than those in the screenies.
If you want to check it out, you can either download the binary version for Windows or grab the source code from Github. The latter also includes a README file with build instructions and further info.