Computational creativity focuses on the modeling and study of computational processes that achieve creative tasks.
Explicitly implies the use of computers.
Compared to artificial intelligence—science of having machines solve problems that require intelligence when solved by humans—computational creativity addresses problems that have less obvious or quantifiable definitions of success or optimality. Creative tasks possess no clear “best” outcome.
Generative art refers to any art practice where the artist uses a system which is set into motion with some degree of autonomy contributing to or resulting in a completed work of art.
Does not require the use of computers necessarily but can incorporate aspects of computational creativity.
Market demands originate in the shift from linear media (book, album) to nonlinear media (website, video game). The number of assets is massive in nonlinear media.
The industrial revolution was about automating mechanical labor; the digital information revolution is about automating information processing.
Components of intelligence:
Common characteristics in definitions of creativity:
Distinction between creations:
Types of creativity:
Creative system typology distinguishes the following dimensions:
Poetry, music, visual art, cinema, dance, animation, design, architecture, etc.
In the music domain: composition, interpretation, improvisation, etc.
If the user/audience influences the unfolding of the piece.
Origin of the system’s knowledge. Can be static or dynamic.
Output diversity depends on the system’s level of generality and scope.
Effective complexity relates to the output, not the algorithm. It peaks when the output is complex but is zero when the output is purely static or chaotic.
Systems can also be adaptive and change their behavior pattern depending on the context and previous experience.
parameters > generate() > output
Generative with reflexive feedback (“brainstorming”)
parameters > ( generate() <-> evaluate() ) > output
Interactive and adaptive
parameters > ( generate() <-> output )