KAIST GSCT Spring 2013 / Spring 2014
Instructor: Dr. Graham Wakefield (grrrwaaa@gmail.com)
Hours: Tue/Thu 2.30pm - 4pm
Location: N25 3239
Language: English
Credit: 3
TA: Sunga Jang
(Office / Hours: N5 #2339 / Monday, Wednesday 4pm-6pm)
Web: http://grrrwaaa.github.com/gct753/
How can we create cultural artifacts (art, architecture, design, service) that are as rich, adaptive, and fascinating as nature? Media computation is often presented in terms of isolated and narrow problem-solving tasks, but the culture technology of tomorrow is increasingly connected, persistent, interactive, and open-ended. How can we create media systems that respond continuously and creatively to an ever-changing environment?
From its origins computing has been inspired by nature, including aspects of intelligence, pattern formation, self-construction and reproduction, autonomy and collective behavior. This course introduces the key conceptual frameworks and techniques of bio-inspired computation and their applications in artifacts of cultural technology, particularly for interactive and generative media arts. The course however most strongly emphasizes practice: during the course, creative applications are examined and implemented in interactive audiovisual media. The aim is not only to develop understanding and expertise, but also to look ahead toward the artificial/natural/cultural environments of tomorrow.
Theoretical issues, technical models, and exemplary works are presented in lecture sessions, and implemented during lab sessions. Students may use a software engine supplied by the instructor. Toward the end of the course lab sessions will be oriented towards helping students with their final projects. Lecture and course materials, including the software engine, will be presented and disseminated through the class web-site.
By the end of the course, students will:
The course is designed to be suitable to students with different levels of technical expertise, but some prior programming experience is assumed.
Lab sessions and assignments will utilize a software engine provided by the instructor, compatible with OSX and possibly Linux or Windows. Using a specific engine allows us to concentrate on important conceptual issues without being distracted by platform and library variations and inconsistencies. The engine supports easy experimentation by students and rapid in-class authoring examples by the instructor. The principles learned can be easily translated to other languages and systems.
Assignments must be completed individually. Collaboration is permitted for final projects, however each student must be able to clearly identify which parts of the project they were responsible for.
The final project should be a significant project using the themes of this course. It should integrate at least two of the kinds of systems we've looked at, along with some kind of interactivity (e.g. mouse, keyboard).
The final project may extend existing work from one (or more) of the assignments, but will be evaluated only according to the new contributions. You may work in teams if desired, but each member must send me a statement making it clear how you divided up responsibilities so that I can grade appropriately.
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, variations etc. If you end up with more than one system that is interesting, you can submit them all.
Document your work using comments in the code. Note that in Lua, you can write long multi-line comments like this:
--[[
This is a long comment
that runs over
several lines
--]]
Or in JavaScript:
/*
This is a long comment
that runs over
several lines
*/
At the top of your code, there should be a long comment including:
Please also comment all the important operations in the code. Try to use helpful variable names, e.g. width
is more communicative than var3
.
Your final project will be evaluted by these criteria:
Please note that your final projects may be shared publicly on the course website.
Send your final project to the TA on or before Friday June 20th.
Grading will be based on:
A selection of key papers will be disseminated during the course. Two books are also recommended, from which many readings will be selected:
Topics: Course overview. Introduction to biologically-inspired computation and artificial life art. Introduction to major themes, presentation of representative works. Presentation of the software engine used for labs and assignments.
Readings: Selected readings (Mitchell Whitelaw, Simon Penny, Sommerer & Mignonneau, Karl Sims)
Topics: Automata theory. Lattice automata, cellular automata, the Game of Life. Dynamic systems, reaction-diffusion systems, chaotic and dissipative structures. Implementations following Conway, Turing.
Readings: Readings from the course books. Selections from Wolfram, Turing, Prigogine.
Topics: Conceptual issues: emergence and the mechanism-vitalism debate, self-organization in discrete and continuous systems, Wolfram’s classes of CA and Langton’s edge of chaos. Implementations following Wolfram, Langton.
Readings: Readings from the course books. Summary texts (Penny, Whitelaw etc.)
Assignment 1: Variations on the Cellular Automaton.
Topics: Evolutionary models. Genotype and phenotype representations. Optimizing selection, aesthetic selection, co-evolutionary and ecosystemic selection. Genetic algorithm, genetic programming, evolutionary programming. Implementations following Sims, Draves.
Readings: Readings from the course books. Original texts by McCormack, Holland, Koza.
Assignment 2: (Week 5) Evolutionary programming of images or sounds.
Topics: Development. Rewriting systems in computation, L-systems, shape grammars. Pattern formation. The evo-devo revolution, cell signaling and regulatory networks.
Readings: Selected readings from the course books. Original texts (Lindenmeyer, Turing).
Topics: Agents, agent-environment interaction. Behavioral systems in cognitive science, AI & robotics. Random walks. Vehicles (Braitenberg), subsumption architecture (Brooks), chemotaxis. Implementations following Reas, chemotaxis.
Readings: Selected readings from the course books. Original texts (Braitenberg, Brooks).
Assignment 3: Either a) morphology using an L-system or b) pattern formation with a reaction-diffusion system.
Topics: Collective behavior and intelligence, biological self-organization. Swarms and PSO, ant colony models (stigmergy and pheromone trails), collective optimization and distributed computing, game theory. Implementations: stigmergy, pheromone trails.
Readings: Selected readings from the course books.
Assignment 3: (Week 9) Collective agent behaviors.
Topics: Neural models. The neuron, von Neumann, biological & artificial plasticity, artificial neural networks (ANNs), supervised, unsupervised & reinforcement learning.
Readings: Selected readings from the course books.
Topics: Advanced topics: Immune systems. Natural and artificial immunity, algorithms, shape spaces.
Readings: Selected readings from the course books.
Assignment: Final project proposal due.
Topics: Advanced topics: Programmable media and byte-code ecosystems. Corewars, Tierra, Viruses.
Readings: Selected readings from the course books. Original texts (Ray, Turing).
Topics: Advanced topics: Artificial chemistries. Autonomous structure and self-organization, emergence of life. Implementation focus: Fontana’s alchemy.
Readings: Selected readings from the course books. Original texts (Fontana et al.).
Project development labs, final project presentation & critique.