Course project

Lecture slides


Ideally you could continue working on and exploring a sketch you wrote as an assignment during the course. There is no strict rules or limitations for the project, but the goal is to create a finalized artwork based on a p5.js sketch and print (or etch or plot) it.

As the course is rather short I would encourage a minimalistic and abstract approach rather than very representational or realistic. You can find all sorts of examples online, but if you don't understand the code you are working with it is very difficult to experiment and iterate on it. You can use examples you find online but make sure to include the source in comments.

Another valid approach is to try to recreate a work you found online and maybe iterate on it. Again, just remember to include a link to the original inspiration in the comments of your code. A good starting point for this approach could be browsing #p5js hashtag on instagram:

Try to always take as small steps as possible when writing code. Make a change or write a new small-as-possible feature and run your code. If you are working on a large feature try to break it down into small steps. Implement the steps one by one and run your code after each step.

Finalizing your artwork

Think about what is the format of your work. As a generative print is the recommeded approach, think about the presentation. Are you presenting a single print or a series of prints? What is the size and material of the prints, etc.?

If you are working on an animation you could record your screen to capture the animation. As a bit more technically challenging option you could use CCapture with p5: You get the bes results by saving the image sequence as png diles and using command line tool to transform the image sequence into a movie: ffmpeg -r 30 -f image2 -s 1920x1080 -i "%07d.png" -i audio.mp3 -vcodec libx264 -crf 17 -pix_fmt yuv420p output.mp4

You could also display your creation on a website. Maybe on you own website or a site dedicated to the specific artwork. Here's a list of resources to help you with that: