When I was working on the software for my graduation project, I found I needed a way for Processing and Arduino to communicate safely, so that no messages would be overwritten, lost or sent in the wrong order. To this end I wrote a messaging system, the code for which can be downloaded here: http://www.rockabit.com/downloads/message queueing.zip
It basically works like this: processing sends numerical messages to the arduino I/O-board over a serial connection. To ensure safe messaging, every message is preceded by another message that specifies the type of message that follows. Arduino then first receives this type identifier, knows what type of message should follow, and then receives that message and sends back a confirmation to let processing know that the message was received. Only when a message is confirmed will processing send the next message in line. Also, if a message is not received for 2 seconds, it is resent, and if resending has no effect then it is placed at the back of the queue to be tried again later on
The Interactive Morphogenesis project, which I made a while ago with Rick Companje and Irad Lee, has been accepted for the Areas of Conlu(x)ence conference in Rumania.
Areas of conflu(x)ence proposes an international debate on the relationship between art and technology in the present digital era, focusing on the impact of the new media in our lives.
The project has to do with l-systems, which are mostly used to model plant growth. As Wikipedia puts it:
An L-system or Lindenmayer system is a formal grammar (a set of rules and symbols) most famously used to model the growth processes of plant development, but also able to model the morphology of a variety of organisms. L-systems can also be used to generate self-similar fractals such as iterated function systems.
To explain it in a bit more detail: take a string, say “F” and define a rule saying how this “F” changes, for example “F->F+F-F”. This has the effect that you can iterate over the string, each time replacing each “F” with “F+F-F”. After three iterations the string would have become “F+F-F+F+F-F-F+F-F+F+F-F+F+F-F-F+F-F-F+F-F+F+F-F-F+F-F”. Now imagine these different characters to represent drawing commands, where in this case F means draw a line in the current direction and + and – mean turn left or right by, say, 45 degrees. These few simple rules can lead to very complex and very beautiful structures being drawn, such as the famous Koch Curve, which is not exactly plant-shaped but does convey the complexity and beauty hidden within the simple grammar of l-systems:
We used this grammar to create a generative art piece which uses sound input to generate an l-system, visualize it, and convert it to sound output as well. We also customized it a bit to make it 3D and we let it move to environmental sounds as well. There’s an active demo where you can simulate the influence of sound by moving you mouse cursor to make the shape move. Also be sure to check out the website 🙂