The Making Centre

Introductory Resources For Creative Coding

This page will introduce you to specific hardware and software which are taught and/or supported at UNSW Art & Design and touch on the intended uses or strengths of each. If you have more questions, get in touch with staff at the Hackspace in room GG10.

What is programming? What is code?

Code is a list of instructions, written in such a way that a computer can understand them. Programming is, generally speaking, the act of writing those instructions. Each environment discussed here has its own editor: a piece of software you'll open on your computer where you can compose, edit and run your code.

Environments?

Different programming environments are often created to achieve a specific goal, and so they all have their strengths and weaknesses. Below we will list the most common creative coding tools in use at UNSW Art & Design along with some tips for getting started.

Processing

Processing is a programming environment intended to teach creative people the basics of programming through drawing, images, animation and interactivity. It has a vibrant and engaged online community, mostly centred around its forum, as well as excellent documentation and tutorials. Of Processing's many iterations, there are two which are most common: the original incarnation, which you can download from the website, involves writing code in the Java programming language and running it, all within the Processing editor. There is another slightly newer version known as p5.js which runs in your internet browser and uses a different programming language called JavaScript. Neither environment is better or worse, and both are actively supported. See this video series for a deep dive comparison of the two.

fractalForest-00364.png

Getting started

Daniel Shiffman, an academic at NYU, has a youtube channel dedicated to teaching creative coding, with separate video series for learning Processing, and learning p5.js. Each collection walks through the absolute basics of programming, specifically aimed at people (and artists!) with absolutely no programming experience.

Good for:

  • Learning the basics of text-based programming
  • Animated sketches and "drawing" to your computer's screen
  • Very flexible, can work with many other environments

Arduino

Arduino is a microcontroller and learning platform for physical computing. It's a tiny computer which you can connect sensors, motors, lights and other things to. Like Processing, which it was heavily inspired by, Arduino was created to teach basic programming and electronics to creative people who may never have written a line of code or soldered any components before. Using Arduino involves uploading code you've written or found online from your computer to the Arduino board to instruct it to interpret data and control the various components you've connected. The Arduino runs the code, completing the instructions provided in the program you upload to it continuously, until it is switched off.

Getting Started

Find the Arduino Fundamentals badge on my.artdesign for a brief introduction to Arduino and its capabilities. Also see the Arduino Projects book. Download the free Arduino IDE (Integrated Development Environment) here. The UNSW Making network also has a longer online series of tutorials and videos for Arduino beginners.

Good for:

  • Physical interaction: buttons, knobs, touch sensors, proximity sensors, temperature sensors, flex sensors, and so on
  • Kinetic work: motors, movement
  • Other outputs like flashing lights

Max

Max is a visual programming environment made by Miller Puckette and distributed by Cycling '74. Instead of typing text commands, as you do in the environments above, Max contains an array of objects which you connect to each other with patch cords to make a patch. Each object has a job, such as combining two numbers, or storing a collection of audio or videos, with inlets and outlets to connect patch cords to for sending and controlling data throughout your patch. Max was initially created and used to control external hardware for real time performance of music and sound art, but is also capable of some more general computational tasks. When it comes to working with external software or hardware, you may find that an external package is required. These are additional collections of objects usually made available online for free by members of the Max community, expanding Max's functionality for specific tasks well beyond its standard incarnation.

Max is installed on all campus lab computers, however, if you would like to install it on your personal computer, you will have to buy your own license to continue using the software beyond the 30 day free trial period.

Getting Started

You can download Max from the Cycling '74 website. Max's excellent built-in documentation provides a perfect starting point, featuring examples you can interact with, in addition to individual help files for each object only a mouse click away (right click on object > open help). When you first open Max and select File > New Patcher, you'll be greeted by an empty patcher window, which is a blank canvas for you to place objects and connect them to one another. You can open the documentation by selecting Help > Reference. Scroll past the example of the day and click on the *Tutorials* link in the Max section.

MaxTutorials

Good for:

  • Quick prototyping of ideas, patch your objects and you're on your way
  • Audio, both creating your own sounds from scratch or importing samples and other external audio or video files
  • Also flexible in terms of how it can be used with other software environments, such as Max For Live, which allows you to use Max patches inside Ableton Live

Moving forward

Hopefully the material and links provided here have given you a bit of an idea of how to move forward and start tinkering in these environments and bring your ideas to life.

Get in touch with staff at the Hackspace to ask more specific questions or arrange an appointment for targeted supported.