Size: Three sections shown; top is 3760px x 3760px, middle is 1400px x 1400px, bottom is 600px x 600px
This is essentially the same code as the previous post, but using more considered imagery in an attempt to get the design to look more beautiful (or at least locate it more firmly in the context of printed textile design).
There are three layers* to the image: a little block of dots goes on first, randomly coloured to a set palette, then a randomly sized and rotated image of a Hellibore flower (using the cellular automata derived positioning code as the previous post) and finally a modular circle pattern. The flowers are set to a transparency proportional to their size - the smaller they are, the more opaque the setting. This is intended to try and prevent any one flower from standing out too much. In a traditional repeat design, the designer would seek to try and make the imagery as balanced as possible - that is, prevent any one element from dominating and hence making the repeat easy to spot. Even though the design above doesn't repeat, I think it's important that a notion of balance is achieved.
I've attempted to create the image using a similar method as if I was working on an actual design brief. The spots and the circles are there to that end; they don't use the cellular automata code and feature purely to make the design look good**. The randomness settings have been tweaked to try and get a plausible (in commercial terms) design. I spent far longer tweaking the parameters to get a visual result that I was at least vaguely happy with than I did actually adapting the code to work with the new imagery. (I'm writing this a week later, and do feel a bit happier with the outcome that a week ago, when I thought it was a bit rubbish.)
This process raises loads of questions about the degree of control (and hence the complexity of the code, or at least, the time to fiddle with it) required to get a successful design. For example, in the bottom image above, the large flower towards the bottom left has a leaf and a petal that both have a horizontal edge. In repeat print terms, this is (generally) anathema; part of the trick of avoiding the repeat being noticeable is to ensure that there are no strong horizontals. Does this remain a consideration in a repeatless design? If so, then code needs to be developed to detect if this is happening, and if so, rotate the element as necessary.
Another question that has arisen is to do with the value of the cellular automata model. In the images above, the images worked better visually with the flowers set to up to 4 times the cell size; this rather negates the point of the model in the first place which is to ensure the elements aren't too close together - if two large images (that fill up to 16 cells each) are placed fairly close together, they may still overlap. Of course, the code could be rewritten to avoid this***, but should the imagery have been altered in a different way to ensure the model is adhered too?
Whilst the structure of the designs above is generative, the content is not - there's a library of 23 hellibore photos, 30 circles and 7 spots that the code randomly draws upon. One of the planned outcomes of this project is to develop some kind of interface that allows designers with no coding experience to develop repeatless designs. Whilst I am interested in developing some designs that are entriely generative, it will be important to create code that does work with existing imagery if the experience is to be shared.
*I'm trying to avoid working as if I'm in Photoshop, but the nomenclature sticks...
**I realise that this is in the eye of the beholder, but without making any great claims for my aesthetic judgement, I'd hope that having done this professionally for some time gives me some kind of perspective borne out of experience.
***In programming terms, the next thing I'm aiming to get to grips with is code that responds to what's already in the image, not just that places it to an initially fixed set of conditions.