Professor Mick Grierson
Welcome to Coding One: Advanced Creative Coding. In this course we look at a range of methods for working with media through programming in ways that are specifically useful in Creative Computing contexts. We also refine and develop our understanding of core programming concepts and computatonal techniques used by artists and those in the creative industries generally.
The course is divided in to 2-week blocks that focus on specific areas, exploring them in ways that relate to certain types of coding expertise and technical approaches. The course is 'Advanced' in terms of the concepts we will engage with, not necessarily the programming approaches that we will use. However, a basic background in programming is assumed - but don't worry if you are just starting out. Those who are just beginning or need to refresh their memory of basic concepts can always take this Creative JavaScript crash course which you can do in a couple of hours :
The schedule is a journey through different dimensions. We start in 1D, then progress to 2D, then 3D, and end up in ND.
- Looking at waveforms and making basic synths
- Using filters and waveforms for altering sounds
- Building a drum machine
- Creating soundscapes
- Programming knowledge - basic structure, variables, arrays and conditionals
- Image representations
- Image filters / convolution filters
- Creating 2D patterns with polar coordinates and loops Using other algorithms for generating patterns (fractals, packing systems etc.)
- Programming knowledge - intermediate structure, more arrays, more conditionals, for loops, polar coordinates, 2D vectors
- Creating a 3D engine from scratch
- Creating 3D geometry from scratch
- Fixed function pipeline approaches
- Shading and lighting
- Programming knowledge - 3D vectors, creating perspective, using matrices for transformations
- Fragments shaders
- Creating basic shapes, lines and noise
- Vertex Shaders
- Creating geometry
- Modifying and lighting Geometry
- Programming knowledge - GLSL concepts, variables and structure, contemporary graphics pipeline
For this course, assessment is through practical project and written examination. The examination will happen during assessment week, which is the last scheduled week of the term.
- Explore periodic phenomena and creative computing concepts through interactive programming
- Build simple applications that just make sounds
- Then extend this to moving images
- John Whitney approach
- https://www.youtube.com/watch?v=5eMSPtm6u5Y
- Explore application ideas slowly
- Incorporate ideas from sound, then apply these to graphics
- Look at a range of image and video approaches (3D etc.)
- Generate artworks as outcomes.
- Move back and forth between ideas and technical concepts
- Gently introduce and refresh technical topics (Variables, Conditionals, Loops, Functions, Objects, objects, types, functions, conditionals, loops.
- Explore through creative application / sound and image making
- If think you already know what you’re doing, try it this way instead. It’s good fun :-)
-
if you feel like you need an overall JavaScript refresher, check out the below crash course I've put together
-
https://github.com/ual-cci/Creative-JavaScript-Crash-Course
-
I'd recommend you do this before diving in to something like p5.
-
www.mimicproject.com REQUIRES CHROME
- Start here for week 1 (using maximilian)
- https://mimicproject.com/guides/maximJS
- You should also look at the MIMIC guide:
- https://mimicproject.com/getting-started/beginner
- For hot takes on JavaScript, go here and drink it in :-)
- https://www.w3schools.com/js/default.asp
- And for ES6, which we will also be using:
- https://www.w3schools.com/js/js_es6.asp