Unfortunate problems have reared there ugly head upon starting this program, which have unfortunately compounded due to laptop issues on my end.
In my first post, I detailed three questions to begin asking.
Are our algorithms representational enough to be evaluated on the same scale as traditional art?
Can their outputs be manipulated to be on a comparable artistic scale to a Matisse?
And are our algorithms void of social subject matter?
I also stated three metrics for judging the value of art based on my research in art history. Now, we will focus on the “Modern” approach of viewing art in a more concrete sense:
Moved away from representation towards valuing abstract qualities of shape, line, and color, appreciation comes intuitively to a person, is aesthetic
It is clear to me that this is the most obvious metric to view our algorithms in, as it can be used to judge both our outputs and a Matisse alike. If we evaluate the picture of our pixelated Matisse below, we can extrapolate some ideas of what makes it good.
This Matisse uses line effectively, with only one horizontal line breaking up consistently vertical lines. Similarly, the colors yellow, green, and blue, lay near each other on the color wheel, with red being laid down next to its complimentary color green to make it pop. As a general rule it seems, that overall similarity with one big element is good.
From these simple observations I can start to form some concrete rules about what makes this piece good.
- Analogous colors are good, as are complimentary colors. Therefor, colors with similar (but not the same) RGB values should be prioritized in code, while having only one color vastly different will also give bonus “points”
- Larger shapes should be encouraged to develop, but like the Matisse, not take over the entire page.
- Lines should also be encouraged to form.
These three things will accurately address the Modern art view on what is good art. Next time, I will discuss pseudocode surrounding these concepts.
L-system development is on hold at the moment, despite my eagerness to have a tree fully formed. (Our line function is bad) I have prioritized starting on cellular automata.
Cellular automata development has also started, with the development of a class to store the data from the canvas in our program. Values on the canvas will be stored on a 2D array. Since we are exclusively dealing with two colors at the moment, values stored in this array should be able to be represented as true/false, or 1/0.
A requirements document is also being developed by my partner Taylor to help us understand where our program needs to go in the future, particularly, to help us understand how we can fit in CGP later on down the line.