In this assignment you will create a monster that moves in p5.js.

Your goal is to make a monster that’s interesting, coherent, and has personality. It should seem like there’s a character behind your monster, that it’s more than a bunch of shapes on screen. Think carefully about how you use colour and shapes to create an interesting and coherent monster. Think about how you can use movement to communicate personality.

This isn’t meant to be a scary assignment, it’s just a chance to get started with making small works of art in p5. You don’t have to be completely on top of coding yet to have a great submission.


  • Due: 14 August 2023, 9:00 pm
  • Assignment template: available on GitLab (link)
  • Specification: keep reading 🙂
  • Weighting: 20%
  • Marked out of: _ / 20
  • Submission: submit your assignment through Gitlab (full instructions below)
  • Policies: no late submissions accepted; this is an individual assessment
  • Rubric: Please see the relevant assessment task on the class summary for your course:


Your monster submission must:

  • be a monster: it can be biological, mechanical, energy-based, anything, but some kind of non-human creature
  • be interesting and coherent: use what you know about drawing shapes and colours in p5 to make your monster an artwork that grabs the viewer’s attention
  • have personality: it should seem like there’s depth and character to your monster, that it’s more than a bunch of shapes thrown on the screen.
  • move: in some way to help engage the viewer, using frameCount or other methods.
  • be an 800x800 p5.js sketch.
  • include a monster.png file (a static image of your monster)
  • include the code in the usual sketch.js file
  • include an artist statement (max 200 words) describing your artwork
  • include a file with at least two references
    • these can be from classmates, artworks, books, online sources, any reference is fine as long as there are two (or more) of them.
    • anything that is not your own work must be included in the file

You can include a background (behind your monster), if you want, but it’s not a requirement.

And a few “must nots”:

  • must not use image: this assignment is about p5’s drawing functions, not using images. Do not use loadImage or image() in your assignment.
  • must not use sound.
  • must not use interaction: this is a dynamic artwork, but not interactive art. No user-interaction allowed.

The artist statement

Your submission must include a short (max 200 words) artist statement. This is a short document, written in the first person, which explains:

  • What your artwork is.
  • Why it is an artwork.

The artist statement is your chance to tell us what is interesting and artistic about your submission—don’t assume that we can guess. It’s you chance to explain how and why your work is interesting, coherent, and has personality.

You won’t receive a separate mark for the artist statement, but it will be used to judge how successful your submission is as a work of art and your abilty to design and construct a computer-based artwork.

Getting started

Here’s the process for working on the assignment:

  1. fork & clone the assignment 1 repo

  2. add whatever code you like to make a cool/interesting monster

  3. when you run the sketch, hitting spacebar will save a still image of the sketch (as a monster.png file in your Downloads folder)

  4. when you’re happy with your monster.png, copy it into your assignment 1 folder (this will overwrite the previous version) and commit the new version to the repo (and push it up to the GitLab server)

If you’re new to Git and you’d like a helping hand, there are some git help videos (from 2018, but still pretty spot-on) on the resources page.

Submission process

  1. fork the assignment 1 template repository from the Gitlab server

  2. clone1 & work on your fork of the assignment 1 repo, regularly committing & pushing your changes to the GitLab server

  3. at the submission deadline, the latest commit2 pushed to the GitLab server (not on your local machine!) will count as your submission

One thing to note is that there are some “checks” which the GitLab server runs to help you out. So if you get a pipeline failed email, then have a look at the FAQ.

Submission checklist

  1. my project satisfies the requirements

  2. my completed assignment has been pushed to the GitLab server, and all the required files (your versions of,, monster.png and sketch.js) have made it to the server

  3. my file includes at least two references, and everything not mentioned in there is my own work

  4. i have viewed my submission on the test URL and it displays correctly


How do I get started?

The first thing you should do is to fork the repo to your account, clone it, make very basic monster out of one circle, and push it back to GitLab. Hey, wow! You’ve started!

After that, try some of these ideas:

  • experiment with different shapes to find an aesthetic you like
  • experiment with different colours (including transparency) for the stroke(), fill(), background() etc. of your sketch
  • use the random() function to control some aspect of your monster, then run it multiple times and save it when it does something that you like
  • look in the reference for new functions to use
  • don’t try to do too much—simple monsters can communicate a lot of personality sometimes.
  • pick a small selection of colours and/or shapes and experiment with subtle variations of this small set of ideas
  • look back at some of the art theory content from the lectures for inspiration

If you can do that, then you’ve proved to yourself that you can submit something (and you’ll save yourself some panic if you don’t do that until just before the deadline).

Does my monster have to be scary?

No, it can be a friendly monster, or an indifferent monster. Any emotional response is fine as long as your work communicates personality.

Can I change the size/dimensions of the canvas?

No, you need to use a square 800 x 800 canvas as set up by the template: createCanvas(800, 800)

Can I use images or sounds from the internet (e.g. as a background image)?


Can I use insert advanced p5 feature here?

Yes, as long as it doesn’t involve using images (see above). We may not be able to help with some advanced p5 and JavaScript that isn’t included in the course so far.

Will I be marked on the monster.png image, or the sketch that created it?

The sketch.

How do I submit my references & artist statement?

The template repo contains “starter” files for both of these. You should change these files to put your own content in there, and commit & push the files up with the rest of your submission.

Basically, everything you need to submit is in that Git repository—as long as you make the changes in there, commit them and push them up to the GitLab server then you’re all good.

  1. make sure you clone your own fork (i.e. the one with your uni ID in the url) to your local machine, not the template (because obviously you aren’t able to change the template for everyone—GitLab won’t let you) 

  2. it’s the main branch which counts as your submission—which is the default anyway (if you’ve just followed all the instructions then you’ve been working on the master branch all along) 

bars search times arrow-up