Computational Creativity research is a branch of Artificial Intelligence where we investigate ways in which software can enhance human creativity, as well as ways in which software can be autonomously creative. Researchers working in this field often build software that creates artefacts of some sort - from paintings to poems, soup recipes to sonatas. In more recent times, our attention has turned to higher level issues, such as how software can evaluate its work, show intentionality and imagination, and how it can frame its own work to add value.
Writing software is a difficult and creative skill which can only be performed by people after much training. As such, while it would seem a natural fit, there has been no serious study of automatic program generation from a Computational Creativity perspective. With this project, we will address this shortcoming, by applying the approaches and methodologies of more than a decade of work on simulating creative behaviour to the problem of automatically generating and testing interactive, multi-media software artefacts.
We will examine ways in which we can get software to write programs, and how we can make this process as creative possible. We will test our ideas by building a new system that can write interactive media programs (IMPs), ranging from videogames to first-person-perspective experiential art installations. This will be based on our successful existing co-operative co-evolution software which has generated well-received games in a fully autonomous way, but will hugely extend its creative abilities. In particular, the new system will plan, write and edit new program code directly, testing and evaluating what it writes before adding it to whatever IMP it is currently trying to create. This code might describe a new object, a new control or scoring mechanism, or how to produce a new musical or visual effect.
We will also look at how creative code generators like our IMP designer can create software that isn't quite finished. These unfinished IMPs will be able to rewrite their own code as people interact with them, to change themselves as they are used. They will self-modify not only in reaction to user responses, but also in reaction to external factors in the world, such as international news or social network trends. We hope to show that these programs are perceived as more surprising, inventive and novel, due to their ever-changing nature.
Importantly, we'll be trying to make automated code generation a creative process. In Computational Creativity research, the software we build does not just generate things - it can make decisions about how to generate something, and communicate why it made those decisions. We will look at how our IMP designer can decide whether something it has made is new and interesting or not, and give it ways to communicate with programmers and users, to tell them about what it has created. We will test our approaches via a crowd sourcing methodology, whereby the feedback from thousands of people interacting with the IMPs will be analysed and subjected to machine learning exercises in order to determine the truth of certain hypotheses, and to produce partial audience models to be used to improve the quality of the output.
We believe that this project will have much impact on Computational Creativity research and Artificial Intelligence in general, as it will bring to the fore new issues in the field, most notably questions around software writing software, the automatic production of "unfinished" artefacts which self-modify and the spectrum from entertainment to thought provocation in interactive media. Moreover, we believe that this project will have much impact in the broader arenas of the public perception of computing and the creative industries, as it will highlight in a very tangible way - the automatic generation of games and artworks - the massive potential for computers to become our creative partners in the future.