Homework 04

Due: 2024/10/07 - 5PM

Programming (10 points)

Intro:

This assignment is an opportunity to further explore loops and how to repeat simple commands so many times that the resulting visuals seem random and chaotic. Sometimes the result of a loop is something repetitive, while other times the actions are repetitive, but the result is unpredictable.


Getting Started and Submitting:

For all of the exercises you’ll start by cloning our template and setting up our GitHub app to pull (download) our repo and then push (upload) the results.

You’ll be turning in 2 links for your sketches, so name your repositories HW04A and HW04B.

Alternatively!, you can start by cloning our multi-sketch template into a single repository called HW04.

Since the computer is gonna be doing all the work of filling our screen, please use: createCanvas(windowWidth, windowHeight).

Like previous assignments, please enable GitHub pages on your GitHub repos and use Brightspace to submit GitHub links to all of your HW04 repositories.


Evaluation

Each exercise in this assignment will be graded on a scale from 0 to 5, taking the following criteria into account:

  • README: repository includes a README.md file with information about the design process.
  • Compliance: work follows the requirements specified in the assignment description.
  • Implementation: work shows evidence of understanding programming concepts and you are fully using them to express your ideas.
  • Thoughtfulness: project demonstrates your personality and it’s not a straightforward re-implementation of someone else’s idea.
  • Craft: code and results show care and consideration for presentation and professionalism, and work doesn’t look like it was rushed.

HW04A

Make Grids Fun Again (5 points)

Last week we created some nice, symmetric, grids using for() loops. This week we are going to create non-regular patterns with variations and randomness.

Start from scratch, or start with the sketches from HW03, and create grid patterns using for() loops. Once you have a nice gridded design going, start adding random variations to your shapes’s size, location, color, type, etc. until the underlying grid disappears in the randomness of the design.

These other works by Yayoi Kusama are here as inspiration. They are hard to replicate, but can give you some ideas for creating controlled unpredictability:

HW04B

Sol LeWitt Drawing Instruction (5 points)

Read about Sol LeWitt, his work and his Wall Drawing series HERE.

Pick one of the Wall Drawings from THIS FILE (or elsewhere) and recreate it with p5.js using for() loops and random().

Use variables for all of the parameters in the instruction, so you can easily extend and modify the drawing by adjusting the code. For example, define the number of points or lines in the instruction as a variable, and experiment by changing its value to 90, 100, 1000, etc.


Tips and Hints:

For all of these, it helps to draw out your strategy before sitting down to write any code. Can you break the problem up into smaller problems? Is there a logical order for the steps that have to be carried out by the computer? Can the visuals be drawn using smaller and simpler routines or do they have to be drawn at once?

HW04A:

Add little bits of variation and randomness one step at a time until the shapes look irregular. This is better than starting with every variable being random and then not knowing which parameters are responsible for each shape.

HW04B:

Most of the Wall Drawing instructions are a little bit vague, but that’s part of the beauty of these pieces by Sol LeWitt. For instructions that require connecting points, it’s never clear if each point has to be connected to every other point, or if each point is just connected to one other point, or something else in between. Also… “non-straight line” is open to interpretation. Is it a curve? a wavy line? an arc? All of these?

Remember that if you need to re-use a random() value in multiple places (to draw points and lines at the same random locations, for example), you have to assign it to a variable.

Read & Respond (5 points)

Can we program without computers? Is the way we interact with computers and organize data while programming an oversimplification of our own cognitive capabilities? Or does this kind of thinking point to larger truths about how we build complex ideas from simple ones?

Keep these questions in mind while you read this week’s texts and write your 200-word response:

1. Grapefruit by Yoko Ono
2. Fluxus: Artist Instructions by Danielle Johnson

And now for something completely different….

Grapefruit is an artist’s book written by Yoko Ono, originally published in 1964. It has become famous as an early example of conceptual art, containing a series of “event scores” that replace the physical work of art with instructions that an individual may, or may not, wish to enact. (Monoskop: Grapefruit)

Being a mix of conceptual art, poetry and creative writing, there’s no right way to read Grapefruit. Flip/Scroll through the book to get a sense of it’s tone and style.

Then, read about Fluxus, scores and Yoko Ono HERE.

Finally, pick a few pieces from Grapefruit that resonate with you and write about them.

As always, your response should be personal, meaning that you should be expressing your views and opinions about the text and not just summarizing it. You can use the following rubric to guide your response:

  • Which pieces did you choose? Why?
  • Did you learn something new? What?
  • What does this have to do with programming?
  • Was it a coincidence that early computer art experiments and conceptual art were happening around the same place and time?

Please submit your response via Brightspace.

Grading for the reading response will be assigned following these considerations:

Response Grade
Only described the work 2 points
Answered some of the prompts, but I can’t tell whether
you actually read about FLUXUS or what you thought
3 points
Answered enough prompts to express opinions 5 points