Lesson 04 – Drawing Machines
Schedule
Time | Desc |
---|---|
00:00 – 00:15 | Intro |
00:15 – 00:30 | Sharing |
00-30 - 01:00 | Work on assignement |
01:00 - 01:10 | Break |
01:15 - 02:00 | Work on assignement |
02:00 - 02:15 | Wrap up |
🎯 Focus
Use code to create tools that generate or transform drawings.
⏰ Content
Brief
Write a program that expands, augments, distorts, questions, complicates, interprets, or improves the act of drawing. Your code should behave like a machine - with its own rules, behaviors, and character. Explain what your system is about: is it a tool? A statement? A game? Use your tool to create your original series of at least 3 drawings. 1
Note: This is a coding assignment. You are not building a physical machine - you are simulating one through code. Think of how a plotter, a spirograph, or a pendulum creates marks, then recreate that logic programmatically.
You do not have to draw your idea on paper first but sketching some ideas on paper is recommended ;)
Variations / Steps 1
- Bring your drawing to life
- Forget about your right or left hand, how else can you draw something?
- Create a machine that requires more than 1 user to be operated
- Make a single purpose drawing machine (a machine that only draw ducks)
-
Identify and challenge some other assumptions about drawing, for example:
- Drawings are made of flat surface
- Drawings is meant to endure
- Drawings can be finished
- etc…
- Make a tool that functions critically. For instance that rejects the tech imperative of accuracy, realism, utility and instead focus on expressivity, irreproducibility, etc…
Deliverables
- 3 drawings
- Code and documentation of your process, add some live example + gifs / images.
- Include a scan or photo of your drawings in the post
More on drawing machines
What is a “drawing machine” in code?
A drawing machine is a system with rules that creates marks. Instead of you directly controlling every line, you define the logic and let the system execute it. Think of it as creating a virtual mechanism that has its own way of making marks.
The key shift in thinking:
- Traditional drawing: You control the pen directly, making each mark intentionally
- Drawing machine: You design a system that makes marks according to rules, behaviors, and inputs you define
Core components to consider:
1. Behaviors (Movement & Logic) How does your machine move? What patterns or algorithms govern its motion?
- Oscillation (pendulum swings, sine waves)
- Orbital motion (circles, spirals, lissajous curves)
- Random walks or noise-based movement
- Physics simulation (gravity, velocity, acceleration)
- Following mathematical formulas
2. Inputs (What drives the machine?) What information does your machine respond to?
- Mouse position and movement
- Keyboard input
- Time (constant animation)
- Random values
- External data (weather, sound, text)
- Previous marks (drawing influences future drawing)
3. Constraints (The machine’s character) What limitations or rules shape the output?
- Speed limits or friction
- Boundaries (bounce off edges, wrap around)
- Distance rules (stay close to mouse, avoid other elements)
- Probability (maybe draw, maybe don’t)
- Memory limits (fade old marks, remember only last N positions)
4. Mark-making rules How and when does your machine leave traces?
- Continuous line vs. discrete marks
- Conditional drawing (only when moving fast, only on certain areas)
- Varying visual properties (color, weight, opacity based on speed/position)
- Multiple drawing agents working simultaneously
- Accumulation over time
Concrete examples of machine-like behaviors:
Simple: A circle follows your mouse with a slight delay, leaving a trail as it moves.
Medium: Two points connected by a line. One follows the mouse, the other oscillates around it. The line thickness changes based on the distance between them.
Complex: A system of particles that are attracted to your mouse but repel each other. Each particle draws a line as it moves, and the color shifts based on its velocity.
Conceptual: A drawing tool that “misunderstands” your input - it draws what it thinks you meant to draw, not what you actually drew.
Questions to help you design your machine (could be used as journaling questions as well):
- If your code was a physical mechanism, what would it look like? How would it move?
- What makes your machine different from just drawing with your mouse?
- What can your machine do that you couldn’t easily do by hand?
- What personality or character does your machine have? (precise? chaotic? stubborn? collaborative?)
References
The examples below show physical and robotic drawing machines for inspiration. Your task is to capture similar concepts in code - think about the logic, movement, and mark-making strategies these machines use, then program your own version.
Your unpredictable sameness, Studio Olafur Eliasson, 2014
Olafur Eliasson drawing machines
Cameron Robbins wind drawing machines
The Wind Drawing Machines are installed in different locations to receive weather energy and translate it into an abstract format of ink drawings on paper.
Patrick Tresset - Toy Robot, 2019
Patrick Tresset is a Brussels-based artist who, in his work, explores human traits and the aspects of human experience. His work reflects recurrent ideas such as embodiment, passing time/time passing, childhood, conformism, obsessiveness, nervousness, the need for storytelling, and mark-making. He is best known for his performative installations using robotic agents as stylized actors that make marks and for his exploration of the drawing practice using computational systems and robots. (youtube channel)
Conductor: www.mta.me from Alexander Chen on Vimeo.
At www.mta.me, Conductor turns the New York subway system into an interactive string instrument. Using the MTA’s actual subway schedule, the piece begins in realtime by spawning trains which departed in the last minute, then continues accelerating through a 24 hour loop. The visuals are based on Massimo Vignelli’s 1972 diagram. (Alexander Chen)
Sloppy Forgeries - Jonah Warren
Sloppy Forgeries is a fast-paced, two-player local multiplayer painting game. Each player is given a mouse, a blank canvas, and a few simple paint tools. Each round, a famous painting from art history is revealed. Players race to copy the painting as quickly and accurately as possible.
Artefact 1 explores artistic co-creation and is the outcome of an improvisational drawing collaboration with a custom robotic unit linked to a recurrent neural net trained on my drawings. The contrasting colors of lines denote those marks made by the machine and my own hand. This work is the latest in an ongoing series of Drawing Operations begun in 2014.
Do not draw a penis - Studio Moniker
Do Not Draw a Penis functions as an agent to collect inappropriate doodles from people who are not willing to stay within the moral guidelines set by our social network providers.
You will find code examples in the book [Generative Gestaltung (P_22_6)](http://www.generative-gestaltung.de/2)
CheckPinterest Drawing machine board
_(temp pinterest account: tmp.pin@gmail.com / TT4[bosses )
> Pinterest drawbots
Example
Resources
- Wiki - Lisajou curves
- Coding Challenge - Drawing with Fourier Transform and Epicycles
- 3Blue1Brown - But what is the Fourier Transform?
- Coding Challenge #159: Simple Pendulum Simulation
- Coding Challenge - Double Pendulum
- A trick to get looping curves with lerp and delay
- Not about drawing machines, but cool
Wrap-Up & Homework
- Summarize key learnings.
- Add to your journal
📝 Activities
- Introduce concept of drawing machines with examples.
- Code: build a drawing machine program.
- Produce at least 3 drawings from it.
📂 Deliverables
- Code + 3 outputs.
- Documentation (images/gifs + reflection).
📓 Journal Prompts
- How is your machine “expressive” rather than “functional”?
- What limitations or constraints shaped your outcome?
🎨 References & Inspiration
- Olafur Eliasson, drawing machines
- Jean Tinguely, mechanical drawing