Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of California, Los Angeles

Introduction to Programming for the Visual Arts with p5.js

University of California, Los Angeles via Kadenze


This course is an introduction to writing code within the context of the visual arts. It asks two primary questions:

What is the potential of software within the visual arts?
As a designer or artist, why would I want (or need) to write software?

Software influences all aspects of contemporary visual culture. Many established artists have integrated software into their process. Prominent architects and designers not only use software, they commission custom software to help them realize their unique ideas. The creators of every innovative video game and Hollywood animated film write custom software to enhance their work.

As a comprehensive first introduction to the potential of software development within a broad range of the arts, this course aspires to teach you to engage the computer more directly with code. Programming opens the possibility to create not only tools, but systems, environments, and new modes of expression. It is here that the computer ceases to be a tool and becomes a medium.


  • Hello
    • In this session, we will cover the following topics: 1) What is Code? 2) Form and Computers 3) Drawing: Define and draw simple shapes; and 4) Color: Change the fill and stroke for shapes. You will also be introduced to p5.js so you can start creating your own work!
  • Media: Load and display images, shapes, and fonts
    • This session will cover external media, file formats, how to load and display images, how to load and display vector shapes, how to load fonts and display text, and how to handle sound files.
  • Motion: Move and choreograph shapes
    • In this session you will learn about types of motion in code, how to create motion with code, transformations, and timers.
  • Functions: Build new code modules
    • This session will introduce functions. We will cover the basics of functions, functions with parameters, and returning values from functions.
  • Synthesis A, Nonlinear Narrative
    • In this session we will begin putting the elements together. We will use longer examples including modes, events, and transitions.
  • Objects: Create code modules that combine variables and functions
    • In this session you will learn how to define a class, add fields and methods to a class, create an instance of a class, and create multiple instances of a class.
  • Synthesis B, Game
    • This session will focus on putting the elements together to create work including motion, objects, and arrays. It will also cover collisions.
  • Flow and Response
    • In this session, we will cover the following topics: 1) Setup and Draw: Creating programs that run over time. 2) Input, Responding to the mouse and keyboard. 3) Drawing. 4) Make different tools with code. 5) Conditionals, Making decisions in code. 6) Easing.
  • Variables and Loops
    • This session will cover variables and how to store, modify, and reuse data; loops, and how to use Random to get random values from the computer.
  • Arrays: Working with lists of variables
    • In this session you will learn what arrays are, how to declare and create arrays, how to assign and ready values, and more.
  • Extend: Adding cameras and more
    • This session will cover using video and video playback, adding camera images and analysis, manipulating the DOM, integrating existing JavaScript libraries, and working with p5.js in instance mode.

Taught by

Lauren McCarthy, Casey Reas and Chandler McWilliams


4.9 rating, based on 36 Class Central reviews

Start your review of Introduction to Programming for the Visual Arts with p5.js

  • Great course for who wants to know how to program interactivity with an incredible tool. Processing rules! Thanks
  • Profile image for Hasti Maghsoodi
    Hasti Maghsoodi
    As we're in the middle of the age of technology, it can be extremely helpful for us, the designers, to be equipped with the knowledge of creative coding. This course provided a significant remote learning environment by gathering experts (professor…
  • Profile image for Rates
    If you want to learn how to code but get turned off by the idea of writing dull shopping list programs, this course is for you. It's code in the context of art, making it very accessible to artists and designers. The assignments are all based around making interactive pictures you can share on the web. You will learn fundamental coding concepts and with a little effort will take you to the start of intermediate level coding, ready to take on more advanced computer science topics. I Really enjoyed it.
  • Profile image for F FP
    F FP
    I enjoyed this course, as much for the production values (I mean, listen to that music!) as for the content, which I studied at the same time as I was going through some books on the subject. It is concise, precise and to the point. Thank you!
  • Anonymous
    It is amazing to see the other student work in the gallery of this course! Also I can't believe I get to Learn from Casey Raes , the inventor of processing!
  • Profile image for Matteo Caristo
    Matteo Caristo
    Hello, my name is Matteo Caristo and I want to congratulate you about the wonderful course I followed: precisely the one about the introduction to p5.js . Apart from the other courses that Kadenze offers, I think this one's most interesting especially for the free support software that can be downloaded and used right away. I had some difficulty with the language, having only studied English at school. So it would have been better if there had been at least the subtitles in Italian, but in any case one can follow it quite well due to the fact that professors show their way of writing sketches with corrections and the final result of the project using the IDE software I was speaking before.
  • Anonymous
    This is a great course if you're interested in Creative Coding. They walk you through a lot of examples before your assignment and each assignment is graded. The community is small enough that the forum is active and the deadlines are flexible. I've tried other coding courses, but this visual approach is great for artists and designers to learn to code.
  • Anonymous
    I'm just a little way into the course, but I'm really impressed and enjoying it. The materials are clear and interesting and the instructors really know their stuff as the creators of P5. I like the interplay between the three of them. The exercises are wonderfully visual and while the homework takes some time, it's worth it.
  • Profile image for Martina Solés
    Martina Solés
    It's amazing to learn directly from Casey Reas, Lauren McCarthy and Chandler McWilliams.

    The sessions are always really interesting. The method usually follows this logic: Chandler explains in detail every concept, keeping it easy to understand; Casey gives you cool (retro) referents and a some history related to the session (always really interesting! ); then Lauren makes you think forward with all the possibilities of her program, with demonstrations step by step.
  • Profile image for Lucia Madriz
    Lucia Madriz
    The course takes you from cero to the sky... Everything is very well explained, you can go along step by step, you can stop the video and replay as need it. The course also has a bit of computer art history which I very much appreciated. The exercises are challenging but also very exciting. Recommended!
  • Anonymous
    Premium quality of teaching and giving information. Mentors of this course are one of the main people behind p5.js , so you get the best up to date knowledge about it. Structure of the course is straight and easy to absorb. It suited for artists and designers perfectly.
    Thanks a lot for made it !
  • Anonymous
    If you are interested in computers and/or art , would like to be creative - take this course. The lessons are formidable and the tutors fantastic. I've took many online courses in the area of programing, web development etc., but this one is one I love from start to the end. I wish, there will be a part 2 someday.

    Awesome, 5 / 5, and a big THANKS to Casey, Lauren, Chandler and the invisible crew who made it .
  • Daniel Salamanca
    This is one of the best programming classes I have ever took. The teachers are great (you have videos from the creators of Processing and P5.js) they explain very well, they teach you the fundamentals but also some history, great references and best practices.
  • Anonymous
    Great course. I am really thankfull for learning this!
    Great course. I am really thankfull for learning this!
    Great course. I am really thankfull for learning this!
    Great course. I am really thankfull for learning this!
  • Anonymous
    My experience taking the P5Js course on Kadenze was a very interesting one. I learned alot about the medium and coding theory in general. It also helped introduce me to Javascript which was a goal of mine.
  • Sujay Mukherjee
    A very comprehensive course with episodes designed in a way that is easy to grasp .The theoretical discussions ar not too lengthy but informative and to the point to give a comprehensive understanding .
  • Anonymous
    Excelente curso, muy bien estructurado y explicado , abordando de manera muy claro los conceptos clave para poder entender p5.js, les felicito y exhorto a seguir con la misma excelencia.
  • Nigel Ramdial
    Fantastic course, easy to follow and a set at a nice pace. A must if you're looking to get into p5.js or just want to dip your toe into coding graphics and visual arts A+
  • Anonymous
    This course is very good, given by the people that created p5.js so, it cannot get better than this. I wish they talked about random sooner but otherwise is just perfect
  • Anonymous
    I have learned so much with this course! It has given me tools to develop my own creative coding ideas! I love receive comments of other students on my works.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.