Artificial Life, Generative Art and Creative Code

Code: DATT4950 / DIGM5950
Title: Artificial Life, Generative Art and Creative Code
Credit: (3.00 Units)
When: Winter 2019, Thursdays 12:30 - 3:30
Where: GCFA, ACW 103
Instructor: Graham Wakefield
Email: grrrwaaa at yorku dot ca Prerequisite: LE/EECS 1030 3.0, FA/DATT 2050 3.0, or permission of course director.
Website: http://grrrwaaa.github.io/courses/datt4950/

Gallery

Synopsis: This course addresses computation as a creative medium from a biologically-inspired standpoint to develop artworks, adaptive media and simulations approaching the fascinating complexity of nature.

Artists, composers, designers and architects have always drawn inspiration from nature, but until recently only rarely have they been able to leverage nature’s creative mechanisms. From its origins computing has also found biological inspiration in pattern formation, self-construction and reproduction, intelligence, autonomy and collective behaviour. Frameworks explored in the course include complex dynamical systems, fractals, cellular automata, agent-based systems, evolutionary and developmental programming, artificial chemistries and ecosystems.

The course is focused on practice in the arts, interactive media, and design: interactive audiovisual applications are implemented both in-class and through student projects, and are critically examined by interweaving the history, theory and landmark works in the literature of generative art, evolutionary music and art, and process art, as well as artificial life, systems biology, and bioinformatics research, and philosophies of process, creativity, and the aesthetics of nature.

Rationale: Autonomous complexity is one of the fundamental hallmarks of computational art; an integral message of the medium. Biologically-inspired methods of digital media formation have found wide applications in art, film, music, video games, robotics, and other computationally-facilitated experiences, frequently drawing upon scientific models of pattern formation, system dynamics, and symbol processing in large populations. Art has always been deeply concerned with its relationship to nature, though the forms of the relationship have changed many times. Likewise, from its origins computing has also found biological inspiration in pattern formation, self-construction and reproduction, intelligence, autonomy and collective behaviour. This course is necessary to understand such developments from their arts and science foundations, in both theory and practice.

Learning outcomes / objectives: At the completion of the course students will:

Contact hours: 3.5 per week, split between lectures and lab work. Lectures focus on the introduction of theoretical, aesthetic and conceptual content of the course. Labs focus on the application of lecture material in the form of instructor-led reconstructions, excercises/studies, and larger projects, and will include time for one-on-one meetings.

Assessment: Assignments, projects, quizzes, readings and participation, with the following weighting for the final grade. Graduate students are expected to achieve a higher calibre of work and depth of research underlying the realization of the assignments and project.

Assignments/projects are assessed by the following criteria:

  1. Execution: How well instructions were followed and conceptual goals of the assignment were met.
  2. Aesthetic qualities: The clear and consistent articulation and composition of a creative whole, and the experiential and/or conceptual depth thereof, within the frame of the given assignment and context of the course.
  3. Technical completeness: Functionality, accuracy, efficiency, creativity, and clear structure in the development and in the results.
  4. Novel contribution: Ingenuity in response to unanticipated challenges, comprehension and creativity beyond what is demonstrated in labs, and vision in further extension.

Class / lab videos

Class videos

Schedule

Content may vary from this plan according to needs and interests of students.

1. Jan 3

Course overview. Introduction to the field(s), and the coding environment used in lectures & labs.
Cellular Automata, classes of behaviour, Game of Life.

Lab script: Game of Life

2. Jan 10

CA variations: non-homogeneity, stochastics, asynchrony; Ants, Particle/block rules.

Student work: Amir, Andrew.

3. Jan 17

Student work. Jeremy, Erik, Nicole.

CA variations: unbounded states. Continuous, reaction-diffusion, multi-scale systems.

4. Jan 24

Agent-based models: agents, random walks, environmental fields, chemotaxis.

Lab script

5. Jan 31

Due in class: Assignment 1

Lab session -- looking at assignments one-by-one.

6. Feb 7

Agent-based techniques: paths, life & death, populations, ...

Lab scripts:

Due in class: Assignment 2

7. Feb 14

Natural & artificial evolution

Lab scripts:

(Feb 21 READING WEEK)

8. Feb 28

Due in class: Assignment 3

9. Mar 7

Due in class: Proposals for final projects / exhibitions.

10. Mar 14

Due in class: Work-in-progress of final project

Curation of works for the OCADU exhibition.

11. Mar 21

Course evaluation

Final project/portfolio assistance.

April 1-14: Joint exhibit with OCAD U Digital Futures course "Research & Innovation Special Focus: Artificial Natures" led by Haru Ji, at the OCAD U campus, 49 McCaul St.

12. Apr 4

Due: Final presentation, project files & documentation

Curation of works for the DM exhibition.


Assignment 1

Cellular automata

The first assignment is to construct a new cellular system. You can start from one of the existing systems we have looked at and modify it, or design and create a new one to explore an idea you have. Use the starter-kit from the labs.

Look through the cellular systems page for ideas of variations to try and implement. You might spend roughly a third of your time choosing what to try and designing, a third actually implementing it, and a third exploring it for interesting parameters, initial conditions, rule variations etc. If you end up with more than one system that is interesting, you can submit them all.

If you had an idea that seemed interesting but was difficult to implement or did not lead to interesting results, submit that too (with an explanation of why you think it did not work or did not do what you expected); this is just as important a part of research.

Document your work using comments in the code. Comment all the important operations in the code. Use helpful variable names, e.g. width is more communicative than var3.

Submit via this online form.

It will ask for:

Assignment 2

Cellular automata

The second assignment is to take on of your cellular automata from Assignment 1 as an environment for agents. There should be a population of agents in the system. Agents should sense the environment and respond to it in some way. They may also modify the environment. You are welcome to change features of your CA to make the overall behaviour more interesting.

Again, use the starter-kit from the labs.

Look through the agent-based systems page for ideas and tips on implemenetaiton.

If you had an idea that seemed interesting but was difficult to implement or did not lead to interesting results, submit that too (with an explanation of why you think it did not work or did not do what you expected); this is just as important a part of research.

Document your work using comments in the code. Comment all the important operations in the code. Use helpful variable names, e.g. width is more communicative than var3.

Submit via this online form.

It will ask for:


Readings

Highly recommended:

Further reading: