We have been teaching Computational Creativity for several years. This page comprises our resources on Computational Creativity in general and on specific topics, such as lecture notes, slides and references to suggested reading.
A Brief Introduction to Computational Creativity
As a largely computational discipline, Computational Creativity approaches build on Computer Science techniques, and push the requirements envelope for those techniques. In particular, the field of Artificial Intelligence (AI) research has provided many methods which find their way into creative systems, and in turn has been driven on by applications of software to creative activities like musical composition, wordplay, painting and video game design. It’s not easy to pen a witty poem, compose a wondrous sonata or to get a robot to paint an evocative picture. Computational Creativity continues to be a driving force for advanced hardware and software technologies.
Computational models of human thought processes have served the Cognitive Sciences well, and have helped to inspire new models of psychological activity. Likewise, AI systems to perform intelligent tasks autonomously have usually been built with strong reference to our understanding of human behaviour. Only in the last decade have AI systems become sophisticated enough for the cross pollination of human and computer creativity studies to take place, and for software to be used in simulations of creative behaviour. We are just beginning a very promising scientific discourse on the similarities and differences of human and computer creativity, which will surely bring benefits to both sides.
In building software which creates value independently of human control, and by slowly redefining the notion of creative activity, we have raised a number of thought-provoking philosophical issues about humanity, automation and creative progress. In the last five years, we have seen commercially successful board games designed by software, art exhibitions of entirely computer generated works, musical performances where one of the musicians is software, and anthologies of poems produced by computer programs. Similarly, we have seen scientific discoveries made by software in fields ranging from medicine to mathematics to astronomy. Computational Creativity is pushing the boundary of the arts and sciences, questioning the role of software as mere tools, and helping to shape the role of machines in our technological future.
The idea of people paying routinely for computer generated poems, paintings, games, compositions, recipes, jokes, ideas, stories and other culturally valuable pieces is highly disruptive. This disruption is unlikely, however, to be damaging to the creative and artistic industries, as people will always pay for a human connection and the blood, sweat and tears of creative people. In fact, we believe that one of the main lessons we will learn from Computational Creativity research is how very highly people value human creativity in society. But there remains a question of whether new economies can thrive around computer generated content where creativity in the software is a maxim. Computational Creativity researchers are poised to help the creative industries make this scenario a reality.
Computational Creativity is the science, engineering and philosophy of how to build software that can take on some of the creative responsibilities in arts and science projects. This course was developed and delivered by Simon Colton at the first Autumn School on Computational Creativity, at the University of Helsinki, in 2011.
Lecture One: Introduction to Computational Creativity
Lectures Two and Three: Building an Automated Painter (Practical and Cultural Issues)
Lecture Four: Building an Automated Mathematician
Lectures Five and Six: Philosophical Issues, Guiding Principals and Formalisations
Ludic Computing is the study of the design, construction and evaluation of computer systems for play. Computers support a huge range of playful and creative activities: from video games and interactive art, to tools for creative expression and playful exploration; as artificial players of games, and as creators in their own right. It is a highly interdisciplinary area with links to many other fields, including Graphics, Human-Computer Interaction and Artificial Intelligence.
Lecture 1: Introduction
Lecture 2: Computational Creativity
Lectures 3 and 4: Evolutionary Design
Lectures 5 and 6: Design Grammars
Lectures 7 and 8: Non-Photorealistic Rendering
Lecture 9: Steering Behaviours
Lecture 10: Pathfinding
Lecture 11: Behaviour Trees
Lecture 12: Adaptive Games
Lecture 13: Interactive Play
Lecture 14: Designing for Play
Lecture 15: Social Networks
Lecture 16: Monte Carlo Tree Search
Tutorial 1: Evolutionary Design
Tutorial 2: Visual Grammars
Tutorial 3: Non-Photorealistic Rendering
Tutorial 4: Steering and Pathfinding
Tutorial 5: Behaviour Trees and Adaptation
Tutorial 6: Understanding Play
Tutorial 7: Social Networks
Artificial Intelligence is the study of how to engineer software which is able to undertake intelligence tasks and exhibit intelligence behaviors. There were four main parts to the course:
- Fundamentals – the basic notions of AI, in particular search and knowledge representation, applied to game playing
- Automated reasoning – how to get a program to deduce new facts and prove things for you
- Machine learning – how to get a program to induce hypotheses from data and make discoveries for you
- Evolutionary approaches – how to evolve programs for intelligent tasks by breeding them using crossover and mutation.
Lecture 1: Characterisations of Artificial Intelligence[ slides ]
Lecture 2: Artificial Intelligence Agents[ slides ]
Lecture 3: Search in Problem Solving[ slides ]
Lecture 4: Knowledge Representation[ slides ]
Lecture 5: Game Playing[ slides ]
Lecture 6: First-Order Logic[ slides ]
Lecture 7: Making Deductive Inference[ slides ]
Lecture 8: The Resolution Method[ slides ]
Lecture 9: Resolution Theorem Proving[ slides ]
Lecture 10: Machine Learning Overview[ slides ]
Lecture 11: Decision Tree Learning[ slides ]
Lecture 12: Two Layer Artificial Neural Networks[ slides ]
Lecture 13: Multi-Layer Artificial Neural Networks[ slides ]
Lecture 14: Inductive Logic Programming[ slides ]
Lecture 15: Constraint Satisfaction Problems[ slides ]
Lecture 16: Genetic Algorithms[ slides ]
Lecture 17: Genetic Programming[ slides ]
Video Talks by Group Members
- Lectures by Simon Colton and many other members of the Computational Creativity community at the Autumn School in Porvoo, 2013
- Can you automatically design games? by Michael Cook, ICCC 2013 talk.
- Towards the What-If Machine by Simon Colton at the Knowledge Technologies Symposium on Machine Learning and Computational Creativity, Ljubljana, July, 2013.
- Co-operative Co-evolution for Game Design from a Computational Creativity Perspective by Simon Colton (about Michael Cook’s work largely), 28th CREST Open Workshop: On Genetic Programming for Software Engineering. The slides are here: slides.
Video talks by Computational Creativity colleagues
- Computational Models of Design Creativity by John Gero.
- On the Future of Computers and Creativity by Jon McCormack and Mark d’Inverno
- Creatome, How to build machines that write tales by Pablo Gervás at TedXBarcelona.
- e-David Robot Painting from Oliver Deussen and Thomas Lindemeier at the Konstanz Work Group on Computer Graphics and Media Informatics. Another video of e-David working with Patrick Tresset is here: Painting Paul’s Memories.
Selected Overview Papers
Some of our papers which provide the reader with a general overview of computational creativity:
The ANGELINA Videogame Design System, Part I Journal Article
In: IEEE Transactions on Computational Intelligence and AI in Games, 9 (2), pp. 192-203, 2016, ISSN: 1943-0698.
Generating video games
Generating interesting board games and puzzles
Some of our papers which address this question:
Procedural content generation for games
Some of our papers which address this question: