Introduction and typology of generative art

Lesson 1 - Welcome

  • Generative Art: works of art that rely on an autonomous system for part or all of their production.
  • Computational Creativity: the academic field devoted to the study of computational processes or creative tasks.

Lesson 2 - Definitions

Computational creativity

Computational creativity focuses on the modeling and study of computational processes that achieve creative tasks.

  • creative processes as they are
  • creative processes as they could be

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

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.

Lesson 3 - Motivations for computational creativity & generative art

  • scientific and academic reasons
  • pragmatic and economic reasons
  • design and ergonomics of human/computer interactions
  • societal and historical reasons
  • cultural and artistic reasons

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.

Lesson 5 - Elements of creativity

Components of intelligence:

  • analytic
  • practical
  • synthetic

Common characteristics in definitions of creativity:

  • imaginative/generative
  • purposeful
  • original
  • valuable

Distinction between creations:

  • P-creativity or psychological (or personal) creativity - novel only to the agent that produces it
  • H-creativity or historical creativity - creativity that is recognized as novel by society

Types of creativity:

  • exploratory - to create artifacts within an existing conceptual space
  • combinatorial - to create artifacts that combine conceptual spaces
  • transformational - when the creative act redefines the boundaries of a conceptual space


  • individual
  • group/social
  • non-human
  • evolution

Lesson 6 - A typology of creative systems

Creative system typology distinguishes the following dimensions:

  • domain
  • creative tasks
  • generality of the system
  • levels of interactivity
    • input of the system
    • output of the system
  • levels of autonomy
  • relation to time
  • behavior complexity
  • architecture and algorithms


Poetry, music, visual art, cinema, dance, animation, design, architecture, etc.

Creative tasks

In the music domain: composition, interpretation, improvisation, etc.

System generality

  • specific, artistic
  • generic, scientific


If the user/audience influences the unfolding of the piece.

  • low level, reactive
  • high level, proactive


Origin of the system’s knowledge. Can be static or dynamic.

  • encoded
  • input
  • learned (extracted from some input data)


Output diversity depends on the system’s level of generality and scope.


  • purely reactive (no autonomy, not generative i.e. a word processor)
  • computer assisted creativity
  • purely autonomous

Relation to time

  • online, real-time
  • offline, out of time

Behavior complexity

  • fixed - converges to static output
  • periodic - patterns of recurrent output
  • complex - most refined structures
  • chaotic - random with no discernible pattern

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.

Architecture and algorithms


parameters > generate() > output

Generative with reflexive feedback (“brainstorming”)

parameters > ( generate() <-> evaluate() ) > output

Interactive and adaptive

parameters > ( generate() <-> output )