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

Class postponed

9. Mar 7

Announcements for upcoming schedule

Evolutionary programming continued: aesthetic selection, biomorphs

10. Mar 14

Due in class: Proposals for final projects (and for exhibition).

11. Mar 21

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

Course evaluation

Curation of works for the exhibition.

Final project/portfolio assistance.

12. Mar 28

Due: Final presentation

Early April

Opportunity to exhibit collaborations with OCADU Digital Futures graduates taking the course "Research & Innovation Special Focus: Artificial Natures" led by Haru Ji, at the OCAD U campus, 49 McCaul St.

Apr 4

Due: Final presentation files, project files & other documentation


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 and agents

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:


Final project

Your final project should incorporate more than one class of system, building upon previous assignments, ideas we have worked through in labs, or models that you independently researched from the reading matter or online. You are also encouraged to integrate the systems we have explored with other media systems or research-creation projects you are using from outside the class. You are encouraged to move beyond the lab starter kit and integrate your project into a more general platform if this will improve your result. You may work in teams, but roles and expectations must be clearly explained.

We will develop projects over the last few weeks of class, in order to result in significant and original pieces of work suitable for public exhibition or presentation.

In the first phase, establish your groups and project concept, outline the design and produce initial sketches (at least two). I will visit each of you during the class to discuss the proposal and assist with progress. At this point you should have:

You will also be required to submit a short paper description (2 pages) as well as an edited video excerpt (around 1 minute length).

Course grade contribution: 40%


Assignment/project grading 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.

Readings

Highly recommended:

Further reading: