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/
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:
- Show strong grounding in multiple methodologies of bio-inspired computation, including demonstrating understanding of mathematical, theoretical as well as aesthetic aspects.
- Be able to apply methodologies effectively in creative practice to a diversity of digital and interactive media, as evidenced in a project portfolio.
- Be able to interpret and reflect critically on a variety of adaptive and generative media.
- Leverage experience in the application of cutting-edge creative coding in generative and interactive arts in order to intelligently extrapolate into future culture technologies.
- Refine advanced coding skills.
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: 40%. Exercises and readings are assigned throughout the course. Exercises develop essential practice-informed critique and experiential learning.
Final Project: 30%. Realized individually or in groups, demonstrate the effective application of understanding through the course in novel expressions of adaptive media and art. Projects will be presented to the class at the end of the term and will be in the form of a critical discussion that reflects on the results of the experience gained over duration of the course.
Final project report: 20% (graduate students only).
Quizzes, readings and participation: 30% (undergraduate) / 10% (graduate). Quizzes are given periodically through the course. Readings are short selections from books or landmark papers, chosen to directly support the assignments and tutorial discussion. Participation incorporates contributions to tutorial discussions, awareness of issues in readings, and the ability to relate tutorial issues to the broader concerns of the course.
Assignments/projects are assessed by the following criteria:
- Execution: How well instructions were followed and conceptual goals of the assignment were met.
- 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.
- Technical completeness: Functionality, accuracy, efficiency, creativity, and clear structure in the development and in the results.
- 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
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.
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
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
.
It will ask for:
- A title
- A description of the idea of the system, how it works (or why it doesn't), and why it is interesting, surprising, etc (or why it didn't meet your expectations). What kinds of long-term behaviors it supports.
- A description of any interactions it supports, or interesting variations of global parameters.
- A description of the technical realization. (Perhaps you tried a few different algorithms until it worked as expected?) If you were inspired by another system, mention it.
- Ideas for possible future extensions of the project.
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
.
It will ask for:
- A title
- A description of the idea of the system, how it works (or why it doesn't), and why it is interesting, surprising, etc (or why it didn't meet your expectations). What kinds of long-term behaviors it supports.
- A description of any interactions it supports, or interesting variations of global parameters.
- A description of the technical realization. (Perhaps you tried a few different algorithms until it worked as expected?) If you were inspired by another system, mention it.
- Ideas for possible future extensions of the project.
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 should have an overall design document, outlining the motivations and inspirations, the primary goal or problem, the methods you are choosing to address them, the technologies and platforms to use, and how you will evaluate its success or failure.
- You should also have working prototypes of some of the components, as proofs-of-concept through which any unexpected challenges will be revealed.
- If the project is team-based, you should identify specifically your roles.
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
- Execution: How well instructions were followed and conceptual goals of the assignment were met.
- 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.
- Technical completeness: Functionality, accuracy, efficiency, creativity, and clear structure in the development and in the results.
- 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:
- Floreano, Dario, and Claudio Mattiussi. Bio-inspired artificial intelligence: theories, methods, and technologies. MIT press, 2008.
- Flake, Gary William. The computational beauty of nature: Computer explorations of fractals, chaos, complex systems, and adaptation. MIT press, 1998.
- Whitelaw, Mitchell. Metacreation: art and artificial life. Mit Press, 2004.
- Artificial Life Volume 21, Issue 3 - Summer 2015 - Artificial Life Art and Creativity
Further reading:
- Adami, Christoph. Introduction to artificial life. Vol. 1. Springer Science & Business Media, 1998.
- Bedau, Mark A., et al. "Open problems in artificial life." Artificial life 6.4 (2000): 363-376.
- Boden, Margaret A., and Ernest A. Edmonds. "What is generative art?." Digital Creativity 20.1-2 (2009): 21-46.
- Braitenberg, Valentino. Vehicles: Experiments in synthetic psychology. MIT press, 1986.
- Brownlee, Jason. On Biologically Inspired Computation aka The Field. Technical Report 5-02, Swinburne University of Technology, 2005.
- Holland, John Henry. Emergence: From chaos to order. Da Capo Press, 1999.
- Samuel Butler. "Erewhon, Chapter 24, The book Of the Machines".
- Cohen, Harold. "The further exploits of AARON, painter." Stanford Humanities Review 4.2 (1995): 141-158.
- Driessens, Erwin, and Maria Verstappen. "Natural processes and artificial procedures." Design by Evolution. Springer Berlin Heidelberg, 2008. 101-120.
- Dorin, Alan, et al. "A framework for understanding generative art." Digital Creativity 23.3-4 (2012): 239-259.
- Dorin, Alan. "A survey of virtual ecosystems in generative electronic art." The Art of Artificial Evolution. Springer Berlin Heidelberg, 2008. 289-309.
- Etxeberria, Arantza. "Artificial evolution and lifelike creativity." Leonardo 35.3 (2002): 275-281.
- Langton, C., Taylor, C., Farmer, J., Rasmussen, S. eds. Artificial Life II (Santa Fe Institute Studies in the Sciences of Complexity Proceedings). Westview Press, 2003. Whitelaw, Mitchell. Metacreation: art and artificial life. MIT1 Press, 2004.
- McCabe, Jonathan. "Cyclic Symmetric Multi-Scale Turing Patterns."Proceedings of Bridges 2010: Mathematics, Music, Art, Architecture, Culture. Tessellations Publishing, 2010.
- McCormack, Jon, and Alan Dorin. "Art, emergence and the computational sublime." Proceedings of Second Iteration: A Conference on Generative Systems in the Electronic Arts. Melbourne: CEMA. 2001.
- McCormack, Jon, et al. "Ten Questions Concerning Generative Computer Art."Leonardo 47.2 (2014): 135-141.
- McCormack, Jon. "Open problems in evolutionary music and art." Applications of Evolutionary Computing. Springer Berlin Heidelberg, 2005. 428-436.
- von Neumann, John (1966). A. Burks, ed. The Theory of Self-reproducing Automata. Urbana, IL: Univ. of Illinois Press.
- Pearson, John E. "Complex patterns in a simple system." Science 261.5118 (1993): 189-192.
- Penny, Simon. "Art and artificial life–a primer." Digital Arts and Culture 2009(2009).
- Poli, R., Langdon, W. B., McPhee, N. F., & Koza, J. R. (2008). A field guide to genetic programming. Lulu. com.
- Rafler, Stephan. "Generalization of Conway's" Game of Life" to a continuous domain-SmoothLife." arXiv preprint arXiv:1111.1567 (2011).
- Reynolds, Craig W. "Steering behaviors for autonomous characters." Game developers conference. Vol. 1999. 1999.
- Sims, Karl. "Evolving virtual creatures." Proceedings of the 21st annual conference on Computer graphics and interactive techniques. ACM, 1994.
- Sims, Karl. Artificial evolution for computer graphics. Vol. 25. No. 4. ACM, 1991.
- Sommerer, Christa, and Laurent Mignonneau. "The application of artificial life to interactive computer installations." Artificial Life and Robotics 2.4 (1998): 151-156.
- Sommerer, Christa, and Laurent Mignonneau. "A-Volve-an evolutionary artificial life environment." Artificial Life VC Langton and C. Shimohara Eds., MIT (1997): 167-175.
- Stocker, Gerfried, Christa Sommerer, and Laurent Mignonneau, eds. Christa Sommerer and Laurent Mignonneau: Interactive Art Research. Springer, 2009.
- Turing, Alan Mathison. "The chemical basis of morphogenesis." Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences237.641 (1952): 37-72.
- Turk, Greg. Generating textures on arbitrary surfaces using reaction-diffusion. Vol. 25. No. 4. ACM, 1991.
- Walker, Matthew. "Introduction to genetic programming." Tech. Np: University of Montana (2001).
- Whitelaw, Mitchell. "System stories and model worlds: A critical approach to generative art." Readme 100 (2005): 135-154.
- Whitelaw, Mitchell. "Morphogenetics: generative processes in the work of Driessens and Verstappen." Digital Creativity 14.1 (2003): 43-53.
- Wolfram, Stephen. A new kind of science. Vol. 5. Champaign: Wolfram media, 2002.
- Zuse, Konrad. Calculating space. Cambridge, MA: Massachusetts Institute of Technology, Project MAC, 1970.