Tools & Resources
This page collects tools, references, tutorials, artists, examples and other material that may be useful throughout the module.
You are not expected to work through everything on this page.
Use it as a reference when you need technical help, want to investigate a subject more deeply, or are looking for creative inspiration.
Some links have been part of this course for many years. Older resources are kept when they still contain useful ideas, even if the technology or platform around them has changed.
Core tools
These are the main tools we will use during the semester.
p5.js
p5.js is our main creative coding framework. It is built on JavaScript and provides an accessible API for drawing, animation, interaction, images, sound and other browser-based experiments.
- p5.js
- Getting started with p5.js
- p5.js Learn
- p5.js Reference
- p5.js Web Editor
- p5.js Wiki
- p5.js demos
- Introduction to Programming for the Visual Arts with p5.js - Kadenze
VS Code
We use VS Code as our local development environment.
VS Code is also where you can inspect your project files, use Git, commit changes and push them to GitHub.
Git & GitHub
We use Git to keep a history of our work and GitHub to store and share repositories.
Do not worry about learning every Git command. We will use a small practical subset during the course.
Obsidian
Your personal course repository will also function as an Obsidian vault.
Use Obsidian for:
- weekly process notes
- references
- images
- screenshots
- short reflections
- links between ideas
- embedded Excalidraw sketches
Resources:
Excalidraw
Use Excalidraw inside Obsidian for fast visual thinking.
Typical uses include:
- diagrams
- layouts
- arrows
- system maps
- parameter sketches
- algorithm ideas
- pipeline diagrams
- annotations
- rough visual experiments
The drawings do not need to be polished.
Generative AI & Media
Later in the semester we will connect our own code with generative media systems.
Replicate
Replicate provides API access to many generative models and gives us a relatively consistent way of experimenting with different media.
We may use models for:
- image generation
- image transformation
- image-to-video
- video generation
- sound and audio
- multimodal experiments
The course is not tied to one particular model. Models and platforms change quickly. Focus on understanding the input → process → output relationship and what each stage contributes to your system.
Creative coding learning resources
The Coding Train
Daniel Shiffman’s tutorials are one of the best resources for learning creative coding with JavaScript and p5.js.
The Nature of Code
Daniel Shiffman’s The Nature of Code explores randomness, vectors, forces, autonomous agents, particle systems, physics and other computational approaches to natural and emergent behaviour.
JavaScript
- JavaScript for Cats
- Matt DesLauriers’ JavaScript guide
- Creative Coding by Allison Parrish
- Foundations of Programming in JavaScript
Designing computational systems
WebGL, Three.js and other environments
These are not necessarily core requirements for this edition of the module, but they are useful if your work moves beyond the basic p5.js environment.
Three.js
WebGL
TouchDesigner
Browser-based coding environments
These can be useful for quick tests, sharing examples or exploring work made by others.
Course references and archives
Vera Molnár
Vera Molnár’s notebooks are an important reference for this course because they make experimentation, systems, parameters and iteration visible as part of the creative process.
Previous course notebooks
These contain material from earlier versions of the module. They are references rather than required linear coursework.
Generative art history
Artists & Practitioners
This is not a definitive list of generative artists. It is a collection of people whose work has been useful, influential or inspiring in the development of this course.
Follow links that interest you and look beyond the individual examples shown in class.
Generative art, systems and computational form
- Manolo Gamboa Naon
- Manoloide
- LIA
- Etienne Jacob
- Keita Yamada
- Kjetil Golid
- Guillaume Pelletier-Auger
- Nicolas Barradeau
- Frederik Vanhoutte
- Generate Me
- grgrdvrt
Motion, loops and visual systems
Creative coding, interaction and teaching
Galleries & Inspiration
Sometimes the best way to learn is simply to look at a lot of work.
When looking at work, try not to ask only:
How can I reproduce this effect?
Also ask:
- What might the rules be?
- What is fixed?
- What is variable?
- Where does randomness enter?
- What changes over time?
- What would happen if one rule changed?
- What makes this system interesting rather than merely visually attractive?
Articles, tutorials and experiments
Open source, borrowing and attribution
Creative coding has a long culture of:
- sharing code
- learning from examples
- using libraries
- modifying existing systems
- collaborating
- publishing experiments openly
This is encouraged, but give credit.
When you use a library, substantial code, media, an idea from another project, help from another person, or meaningful assistance from an AI system, make that contribution visible in your documentation.
A useful historical reference for the course’s approach to attribution and creative coding is:
The goal is not to pretend that creative work happens in isolation. The goal is to understand what you borrowed, what you changed, what you learned, and what decisions became your own.
A note about this collection
This page is intentionally larger than the list of required tools.
Some resources are foundational. Some are strange. Some are old. Some may only become useful when you encounter a particular problem.
Treat it like a shelf in a studio.
You do not need to read everything on the shelf before you start making something.