Generative Design Programming

Week 3: Intro to p5 II.

4h

Topics: Geometric patterns. We'll review p5 functions from last class, and add the last basic functions. We'll introduce randomness in the design and program a pattern. For last exercise we will try recursion and linear transformations.

Coding train videohttps://www.youtube.com/watch?v=o9sgjuh-CBM

Processing tutorial (relevant, different are only push() and pop() unctions): https://processing.org/tutorials/transform2d


The complex geometry of Islamic design - Eric Broug (Youtube)
5 min video examples, n-fold symmetries, how to create own Islamic pattern
Building the Moroccan Court (Youtube)
workers creating a tile wall

For JavaScript, the best documentation out there is https://developer.mozilla.org/en-US/docs/Web/JavaScript.

Documentation for p5.js is available here: https://p5js.org/reference/.

If you already knew Processing, look at the differences in this Coding train: https://www.youtube.com/watch?v=AmlAiKsiy0o (part 1 of 3). 

Later, you might consider working in VS Code. There are plugins available which will make it super easy.


First homework assignment

Deadline: 18.10.2022 (including)

Your task is to create a sketch that generates a set of artworks of geometric pattern (for example, for a new desktop background). The emphasis of this project lies on the generative creation, i.e. your sketch is expected to create multiple artworks. This can be achieved by using randomness, input data, mathematical functions or user interaction such as mouse movement. There is no limitation to your ideas.

Submission

To export your artworks as images, use function save(). In case you are interested in postprocessing in external editor, you can try vector format (SVG) too.

Download the code from the P5 editor (top-left corner: File > Download).

Add to the downloaded zip:

  • link.txt: the link to the code, a commentary if you want
  • best image(s) - at least 3
  • videos if it's animated/interactive (use Xbox Game Bar on Windows, or p5.capture library)

Upload to IS vault: