Xpresso is the name of a program I wanted to create a year ago. Basically, it is a program capable of taking as input any logical description and some constraints and gives as output a representation of that circuit, both minimized and constrained by the specified restrictions.
First, some story of the project: it started last year when I got bored to draw by hand complex digital circuits. Following the lead of Răzvan Deaconescu (and others) to never repeat a boring thing (If you have to do something twice, make a script) I decided that it was the time for this program to be built.
First attempt was in C without any initial considerations of how we will do the autolayout and the rendering. This has proved badly and the attempt failed. A few weeks later, I started again, this time in C++ and linking with wxWidgets. Yet, I have encountered some problems on the way and the interest faded away.
This year, I tried to propose this project at the CDL courses but all of the students understood that it was way too hard for a start and I left it to be started at another time.
Afterwards, I started to learn Haskell and Gtk and I remembered about this project. When I saw the stage from Portland State University at GSOC I immediatly applied there. Yet, even though I had spoken much with Barton Massey and I got interested in their Chortl project, my application was rejected. This was the impulse needed to restart this project. This time, I promised myself to finish it this summer, along with the Hammerfall and another project.
As of now, I have the automatic layout of gate, as can be seen from the following screenshot.
However, I won’t post any code as of now because it is way too messy for public eyes. :)