Day Eighteen of Thirty-Five

The last few days have been a struggle, and as I pass the halfway point it is time for some reflection. I've shown to myself that I can produce something every day. I've been able to both refine an idea and take leaps to explore alternatives, and have found that the most interesting result don't always come when I'm feeling inspired. And crucially I've posted something online each day, even on days I've been disappointed with my efforts.

One thing I've been missing is that I'm rarely surprised by the output of my code - I've been trying to coerce something "good" out of it every day, reducing the variance too much. Part of the reason for this is that pure randomness is easy to implement, but the output rarely pleasing or interesting to look at, particularly when it comes to the overall composition of piece (it can still be quite useful for detail and texture).

I've decided to take the "same evolving codebase" of my original plan more literally. I've looked back at what I've created so far and I want to increase the variance between each run of the program, but bake in some of the kinds of decisions I've been making.

Today I went back to basics and started with placing circles, which all the pieces have relied on in some way. There's between 1 and 4 large circles, which can then influence the placement of the smaller circles (or not). The smaller circles themselves can be spread evenly or layered as first introduced in day four. For today's piece I then decided to only draw the small circles, using the large one as negative space.

I plan to build on this for the rest of the challenge, incorporating some elements from the first half as possibilities for the program to select. My hope is that by the end I have a single program that generates a variety of consistently pleasing and/or interesting outputs.

Read More