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.

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:

Resources:

Excalidraw

Use Excalidraw inside Obsidian for fast visual thinking.

Typical uses include:

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:

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

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

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:

Articles, tutorials and experiments

Open source, borrowing and attribution

Creative coding has a long culture of:

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.