Machine Gardens is part of my MA final project. See here for a more background information
Try playing with the sketch in the browser
Beyond the framework outlined in the link above, which gives a general pattern to a number of pieces I'm producing, there were several specifics inspirations for this work. The first was a children's clockmaking kit (more or less like this one) that I received and assembled this year. What struck me was that despite the apparent confusion of multiple overlapping cog-wheels, the machine was a simple tree-structure with the spring at its root and two branches forking off. One branch subdivided to control the hands and chime while the other ended in an escapement mechanism connected to a pendulum to regulate the speed. This discovery that mechanical systems were really trees of actuators and "sensors" springing from a central motor made the previously incomprehensible legible to me.
The second inspiration was the "little" programming language Context Free which allows users to create striking fractal images with very few lines of code. All recursion can demonstrate this "magical" property of seeming to create plenitude out of very little, and Context Free focusses ruthlessly on just this aspect.
The third inspiration was a film by Ralph Steiner showing various moving mechanical parts "choreographed" to ballet music. The beauty comes from both the flowing rhythms of the movement itself and in the delight of recognition as you grasp how the mechanisms gives rise to the movements.
A final motivation had actually appeared earlier in the year, though I didn't recognise it at the time. When I was researching the living table decoration I had been told that another way to implement it would be to use a "rack and pinion" to move some kind of ring up and down the bundle of optical fibres. At the time I didn't know what a rack and pinion was or where I would get one. But as I started admiring the movements of the parts in Ralph Steiner's film and wondering how I, as a programmer, could could engage this world of mechanical principles and motion, I realised that I wanted to make a tool that would let me "magically" make these machines out of nothing but words.
For Machine Gardens I wanted to explore text / language as a way of constructing machines. I first thought I would try to create a "little language" for defining the machines and this led me to explore Prolog. You can see some interesting experiments here but ultimately I didn't understand the language well enough to use it.
Machine Gardens therefore consists of code in Processing in two parts. 1) A library of classes which represent the parts of a machine (racks and cogs) and a Machine class which holds them together in a tree structure. 2) An example "Garden" ie. a particular piece of code designed to construct a machine using a recursive algorithm. The intention is that this garden is just one example, and other programmers could use the same Machine classes assembled by alternative principles.
The program can be seen in the browser where I have added a simple interface to adjust parameters of the Garden model using the keyboard. At present there is no output to makable file as I'm waiting to see what equipment I'll have available before the show. But it should be straightforward to convert the existing model to produce the right format.