I’ve now improved the system so that it can add images (again selected at random from a prepared subset, and sized and positioned at random.)
An interesting conceptual point. It is difficult not to see ‘significance’ in some of the happier random selections. What did the artist ‘mean’ by these juxtapositions? What is he trying to say?
Well, nothing actually. The artist had no idea what he was doing or (to use Nake’s terminology), ‘he’ was thinking about the subface, not the surface. ‘His’ mind was busy with an algorithm. Your mind may see significance in it, or not.
Incidentally getting it right using images is quite difficult. These are the best of a rather poor lot of ‘paintings’. I will try to improve the algorithm over the next few days, and get a better selection of images to draw on.
The other problem was that, if you like a ‘painting’ but it is just not quite right, you can’t recreate it; the next one will be entirely different. So the system now generates, with each ‘painting’, a set of values, in the form of a JSON-encoded Python dictionary. There is then another programme that can take these values and turn them into an identical ‘painting’. This is a similar but much simpler process than the original programme, since it does not have to calculate any values this time round. The idea then is that you can tweak the values in the dict by hand, in order to make subtle changes to a layout you like. This is almost working, except (I think) for a problem with the order in which Python reads a dict. (I am using the OrderedDict to create it, but of course when it comes out of JSON serialisation it is just an ordinary dict again. When panels of colour have different alpha channel values, it makes a difference in what order they are drawn.)