Generative Art - Project description

The final exercise for the class is the development of a small project. As we discussed at the start of the semester, this project will be worth 20% of your grade. You now have approximately a week to do the project, which is either quite short (there are not that many hours between now and the end) or quite long (but it is one quarter of the term) depending on your perspective. In either event, I do expect to see some significant effort put into these projects, because they are essentially the culmination of the term and a replacement for any kind of more formal evaluative exercise like a final.

Note that we will finish the term by having two days of presentations. We will discuss the scheduling later, but work as if you needed to be done to present on Wednesday.

Requirements

There aren’t many strict requirements. I’m not even requiring that what you produce be strictly speaking art. I am fine if it is a really cool screensaver or some other visual toy that gets you excited. I’ve been asked by some of you if you could write a game. I am conditionally okay with that, but it must meet the below requirements (Flow? Yes. TicTacToe? No.).

All projects should be something we can class as generative art
I’m not hung up on the art, but the generative is important. This means that there must be some autonomous process involved somewhere. The autonomy could come from randomization (random and noise), simulation (e.g., attractors and repellers), outside input (text, numerical data, images, video, sound, etc), automata carrying out simple tasks that combine to create complexity, recursive functions or objects, or complex mathematical interactions.

The project should be cleared by me :Everyone should get a verbal okay or an email response from me before you seriously dive into the work. I will help you find the right level to be working at and make sure you are pointed in the right direction.

You should write at least one class :This is a lower level concern. This is mostly to push you towards writing better and more flexible code.

Grading

I’ll admit that grading this will be tricky, but here are the general metrics I’ll be using.

Type Percentage
Technical correctness 45%
Organization 10%
Documentation 10%
Presentation 10%
Complexity 10%
Creativity 15%

Technical correctness: Does it run? Do loops cover all of the values that they should? Do algorithms that loop around the canvas actually loop? Are there conditional statements that can never be false, or loops that never end? I’ll be looking at the intentions (based on what I see in the code) of the code and the reality of how well if actually performs those tasks.

Organization: This is more about good programming practices. Are things grouped well? Are values that are “control knobs” of the algorithm put at the top where we can find them or are they scattered throughout the sketch? Do you make good use of classes and loops and functions? My judgments will be commensurate your level of experience.

Documentation: I want to see very descriptive documentation that tells me what the project is, how you did it, and when relevant, what it means. The primary documentation should be at the top of the file and I would like one line comments like you see in my examples through out, providing insight into your thought processes. be clear what each part of your code does.

Presentation: You will all give a little presentation. It doesn’t have to be long, but it should tell us the goals of the project, how you built it, what techniques you used, and should, of course, include a demonstration. This could be code that you run for us, a movie of the output (especially for slow rendering sketches), or even some stills if your project was more about an end result than a dynamic process.

Complexity: I want to see some level of complexity in your projects. A technically proficient color wheel will not get many complexity points.I will also judge this based on my perception of your abilities and level of CS education to date.

Creativity: Is this a straightforward replication of an algorithm, or is there something of you in there. How much thought did you put into creating something interesting and compelling?

Thoughts

A number of you have already come and talked to me about ideas for the project, which is great. For those of you who don’t know what you are doing yet, there are a couple of ways for you to jump start the process of figuring out what to do. A big one would be to look at a lot of examples, either from my book, or in the several links I’ve posted on line. Look around OpenProcessing. Just type “generative art” into Google. Find something that speaks to you in some way. Maybe you just think it looks cool. That’s fine. Trying to duplicate it (without looking at the source can and just copying) is a fine way to come up with a project. I’d be happy to talk about how you can get from what you know to what you are looking at (and if I think you can do it). This is a fairly traditional technique used by art students throughout time to develop their techniques.

Another approach is to look back over the examples we’ve done and the assignments and see what you thought was the most interesting of fun to work on. Which one did you find you just wanted to keep poking at (if any)? If there is one, why not go back and see if you can take it to the next level, maybe incorporating some of the other techniques we have looked at?

Finally, since many of you are not CS majors, think about your major or your other interests. Is there data you could explore? Processes you could conscript and simulate? This would be another area of exploration.

Mostly, I want you to have fun with this. I am instructing you to play and show me something cool. That doesn’t happen in many classes.