Assignment I
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. For this assignment, I prefer that you 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.
Course grade contribution: 15%
Assignment II
Agent-based system
The second assignment is to construct a new agent-based 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. As with the first assignment, I still prefer that you use the starter-kit from the labs.
Look through the agent 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.
Course grade contribution: 15%
Assignment III
Evolutionary system
For this assignment, you can either create a new system or re-use your assignment I or II, or one of the CA or agent-based systems from the labs. The crucial addition you must make is to demonstrate an evolving population. You can choose a pre-defined fitness function (for problem-solving), or a more general viability condition (as in ecological models), or use interaction to select fitter candidates manually (as in aesthetic selection). More important is to identify some novel way of applying what we've learned -- maybe some idea sparked in your mind that you'd like to try -- if so, comment on how you addressed the idea, what challenges you find, etc. (rather than whether it works). Comment also on the impact of evolution on your system. Is it converging on better results? Is it consistent each time you restart the simulation, or does it vary widely? Did you try different mutation rates, mutation/recombination operations, different genome or population sizes, etc.?
For this assignment, you can either use the same starter-kit from the labs, or you can use another programming environment if you prefer (but only if you feel confident to translate the necessary code quickly enough). If you choose another environment, please make sure I can access the code and you can explain where it is -- perhaps best to talk to me to confirm details first.
Otherwise, submission details remain as before.
Course grade contribution: 15%
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.