Each challenge contains various example solutions, a starting point (where helpful), variants, ideas for further work, links to related techniques and related challenges, and external tutorials or artworks. They are graded in difficulty and tagged with keywords.

While sample solutions to these challenges have been provided in p5.js, the challenges themselves are generally suitable for attempt with other versions of processing or other creative coding platforms.

This is a work in progress!

<aside> 💡 Credits: If the challenge idea has been taken from another source, the source is linked in the sourceURL field. There are also specific fields for any related Coding Train challenge by Daniel Shiffman. I have tried to avoid too much overlap with those, but there is inevitably some as he has done so much wonderful stuff!

</aside>

Background: I wanted to have some place to collate challenges I use when teaching coding, and I want students to be able to find suitable challenges on their own.

Challenges, not tutorials?

Personally, when I learn, I really value having a suitable, concrete challenge to work on. Tutorials often take a lot of time to read or watch before you understand what they're trying to have you build, and they're often just having you join the dots or copy-paste code as you go along. As a result, we don't get to engage our brain with problem-solving. I like Grant Abbitt's approach in his blender exercises. State the problem first, let the student try, then show how it's done (ideally with the student trying again).

What's needed

About this challenge document: Tech

Open questions:

Challenge thumbnails as stills or animations? The latter is very noisy (and they approach the free account's filesize (5MB)) (Play-once animations on hover would be ideal.)

Content in the challenge's fields or in the challenge's free-text page? Notion database fields can't have structured text in them (e.g. no "code" section). I'm inclined to put most of the challenge write-up in the body of the page rather than in a field, but that loses the structure. Notion templates might help with creating pages with a certain structure but I don't think they help maintain the structure when you inevitably need to modify it.

Embedding openprocessing sketches:

Just type /embed into the notion page and then paste the sketch link with /embed/ at the end. In this example

https://www.openprocessing.org/sketch/941926/embed/

https://www.openprocessing.org/sketch/941926/embed/