Drawing Machines for Artists, Coding Course
This is the website for the YouTube course materials for the course "Drawing Machines for Artists, Coding Course" created by Daniel Catt.
At the moment it's in holding-pattern mode while I get the first set of lessons recorded. You'll be able to view the videos here (coming soon), or view the course playlist on YouTube (also coming soon).
The course aims to teach artists who want to learn how to use drawing machines to create art using code. No prior coding experience is required, but some basic maths like addition, subtraction, multiplication and division is helpful, calculators are allowed, it'll all be fine. 😁
The code will use JavaScript for the main part, although the content is easily converted to Python or any other language.
While waiting for the course you can find Daniel;
• Vlogging + stuff on YouTube
• A fortnightly Newsletter
• Somtimes posting to Instagram
Daniel has generally given up other forms of social media for sanity.
Module 1: Introduction to all the things!
1.0.0: Introduction
Daniel says "Hi", and introduces the course.
1.1.0: Types of pen plotter artists
The three main types of pen plotter artists, which one you are, and which one this course is written for (spoiler, they're probable the same type).
1.2.0: Introduction to the drawing machine
Just what is a drawing machine? The main types, a couple of the more esoteric ones, and the type we're most likely to be using.
1.2.1: How to talk to the drawing machine
There's a handful of different ways to get the plotter to do what we want. We can give it files to draw, or talk to it directly. In our case we're going to give it files to use, and this course is all about how to create those.
1.3.0: Pens and paper
Let's make some marks, the pen and paper discovery, what works and what doesn't. The journey every new artist goes through and some hints to short-cut to the end.
1.3.1: Anatomy of a piece of paper
In which we explain the obvious about paper sizes.
1.4.0: What is an SVG File?
The way we're going to be talking to the drawing machine. This is the file type we're going to be using, and why it's not at all scary! We'll have you being an SVG pro in no time at all!
1.4.1: Writing a calibration file
Putting our paper size and SVG knowledge together to make a handy file to help you get pens aligned, plus a bit about sticky tape.
1.4.2: Writing an SVG file by hand + dice
Creating an SVG the boring way, so we can appreciate using code later.
1.4.3: Writing an SVG file with AI, badly
A bonus video, in which we get an AI to create an SVG file, for reasons.
Module 2: Making our first designs
2.0.0: Introduction
A quick overview of what's we're going to do in the next few lessons. And my teaching style (and why).
2.0.1: A note about how we write code, scripts vs functions
Why the way we write is code different to "proper" code, and that's okay.
2.1.0: Setting up our template.
A little bit of work we need to get out of the way to make things a little easier, trust me!
2.2.0: Drawing lots of lines!
Our first design written with code, an introduction to looping, and some fun surprising effects
you
can do with a bunch of lines (while
loops).
2.3.0: Making decisions in code.
Sometimes we want to draw a line, sometimes we don't, using an if
statement.
2.4.0: Random + importance of 0 to 1, part one.
Now we introduce some randomness, things won't every be the same again! The roll that chance plays in our designs.
2.5.0: Let's draw some squares!
Creating a grid and using a different kind of loop in code (the for
loop).
Module 3: A slightly better way of making SVG files
3.0.0: Thinking about design
Explain what we're going to do next.
3.1.0: Anatomy of a line
A line is just a bunch of points!
3.2.0: Anatomy of a design
A design is just a bunch of lines
3.3.0: Creating an SVG from the design.
Instead of making the SVG up as we go along, we're going to do it all at the end.
3.4.0: Random again + the importance of 0 to 1, part two.
Nested squares, but how many?
Module 4: Moving things around & a better way of previewing results
4.0.0: Moving, scaling and rotating - intro
A quick chat about what we're going to do next.
4.1.0 Moving stuff around.
A slightly different way to position things in our design, using "translation".
4.1.1 Positioning squares (again!)
The new, slightly more complicated but better way of placing squares, and different sized paper.
4.2.0 The importance of 0 to 1, part three.
Revisiting 0 to 1 again, this time so we can move between different scales. Also known as "percent" 😅
4.2.1 The distance between two points
Some basic trigonometry (sorry), how far is it from point A to point B?
4.2.2 Dividing a line into points (the bad way) + LERPing
Easy maths and easy percents, I promise.
4.2.4 Dividing a line into points (the good way) + wiggle it, just a little bit
One extra bit of maths that makes everything better. Plus wiggly lines.
4.2.5 Breaking up a line into smaller lines
Bonus video for the brave.
4.3.0 Scale
Making things twice as big, half as small, and all the other sizes too.
4.4.0 Preview with an onscreen "canvas" + Download SVG
Let's make things slightly easier for ourselves, by previewing the SVG in the browser and downloading the file.
4.5.0 Rotation
The one that always throws everyone, trying to rotate things, the importance of knowing your middle.
4.6.0 Circles, finally!
Circles are just lots of little lines, we got this!
4.7.0 Checking your edges.
Advanced, but still "simple" maths, how to keep things on the page.
Module 5: Some math things to make more interesting layouts
5.0.0 Introduction, bonus maths!
But fun!!
5.1.0 Making things more interesting with simple curves.
In which we learn about sin waves, how to make them and how to combine them.
5.2.0 A different way of thinking about where to put things
Bonus video: In which instead of (or as well as) thinking of x,y position, we think about placing and rotating things around other things, with polar co-ordinates.
5.3.0 Cooler randomness
Random is great, but what if it was a little less random? An introduction to Perlin noise, how we can make randomness flow, and stealing stuff from p5js!
5.4.0 Going off on a tangent
How to head off in the right direction.
5.5.0 Crossing the streams (lines) with intersections
Figuring out where two lines cross, so we can do something about it!
Module 6: Some advanced stuff you may want to know about
6.0.0 Various next steps
An introduction to some of the commonly asked things people want to do.
6.1.0 Line removal machine
Removing hidden lines.
6.2.0 How to make a glyph
A small example project that combines a few things.
6.3.0 Text and handwriting
Okay, finally, some thoughts about how to make text and handwriting.