Crafting Generative Art through Genetic Improvement: Managing Creative Outputs in Diverse Fitness Landscapes
<|reference_start|>Crafting Generative Art through Genetic Improvement: Managing Creative Outputs in Diverse Fitness Landscapes: Generative art is a rules-driven approach to creating artistic outputs in various mediums. For example, a fluid simulation can govern the flow of colored pixels across a digital display or a rectangle placement algorithm can yield a Mondrian-style painting. Previously, we investigated how genetic improvement, a sub-field of genetic programming, can automatically create and optimize generative art drawing programs. One challenge of applying genetic improvement to generative art is defining fitness functions and their interaction in a many-objective evolutionary algorithm such as Lexicase selection. Here, we assess the impact of each fitness function in terms of the their individual effects on generated images, characteristics of generated programs, and impact of bloat on this specific domain. Furthermore, we have added an additional fitness function that uses a classifier for mimicking a human's assessment as to whether an output is considered as "art." This classifier is trained on a dataset of input images resembling the glitch art aesthetic that we aim to create. Our experimental results show that with few fitness functions, individual generative techniques sweep across populations. Moreover, we found that compositions tended to be driven by one technique with our current fitness functions. Lastly, we show that our classifier is best suited for filtering out noisy images, ideally leading towards more outputs relevant to user preference.<|reference_end|>
@article{fredericks2024crafting,
    title={Crafting Generative Art through Genetic Improvement: Managing Creative
  Outputs in Diverse Fitness Landscapes},
    author={Erik M. Fredericks, Denton Bobeldyk, Jared M. Moore},
    journal={arXiv preprint arXiv:2407.20095},
    year={2024},
    archivePrefix={arXiv},
    eprint={2407.20095},
    primaryClass={cs.NE}
}