Python For Visual Designers

Course Description

Designers use tools to help us get our work done, but we rarely consider how much these tools can box us in to certain processes and solutions in our work. Creating our own tools can lead us down new and unexpected avenues in our designs: some of the best visual ideas can come about by setting up some boundaries — a color palette, a typeface or two — and then running wild within the system. And working out a system in code is a great way to explore these ideas: computers love repetition and can quickly make hundreds of variations on a theme, and mistakes in the code can result in something that often looks better than what was originally intended.

With no programming experience necessary, workshop participants will learn the basics of the Python programming language while working in the free DrawBot application for MacOS. A quick sketch made with code in DrawBot can be saved as a PDF as a starting point to be finished later in Illustrator, or, with a little bit more work in the code editor, an entire book, magazine or animation can be built without even launching Illustrator or InDesign.

Using the fundamentals of the Python programming language, students will sketch to create vector art with code and use the basic principles of design to turn their sketches into PDF zines and animated gifs.

Required Materials

  • A computer with macOS 10.9 (Mavericks) or newer
  • A fast enough internet connection for video calls

Software

  • Drawbot
  • A coding font of your choice!

Course structure

Most of class time will be spent coding together in the Drawbot app. In between courses, students are encouraged to practice the skills learned during class and experiment with them.

Between the third and fifth class sessions, each student will be asked to work on a few spreads that we will turn into a collective zine.

Beyond the nuts and bolts of Python programming, I hope students use this opportunity to step back and consider how Python/Drawbot might affect their relationship with their tools. I will provide Optional readings and links for students that explore this topic at their leisure, even though they may not relate directly to the course materials.

Credits

This Type@Cooper course was originated by Andy Clymer, and its structure and content owe much to his work.

Course Outline

Session Date Subject
1 October 21 Shapes and Loops
2 October 28 Colors and Text
3 November 4 Canvas and Images
Clocks back!
4 November 11 Layouts
5 November 18 Animation
6 December 16 Follow-up session

Sessions

Session 1: Shapes and Loops

  • Introductions
  • The Drawbot interface
  • Keyboard shortcuts
  • Hello world
  • Math
  • Strings
  • Comments
  • Variables
  • Drawbot primitives (docs)
  • Loops
  • Conditions

Session links

Optional readings

Session 2: Colors and Text

  • Review
  • Show & Tell
  • Lists
  • Booleans
  • Canvas
    • Pages
    • Graphics State (docs)
    • Saving (docs)
  • Functions
  • Text (docs)
  • Formatted Strings (docs)
  • Color (docs)
  • colorsys (docs)

Session links

Optional readings

Session 3: Paths and Images

  • Review
  • Show & Tell
  • Paths (docs)
  • Color (docs)
  • Image Object (docs)

Session links

Optional readings

Session 4: Layouts

  • Review
  • Show & Tell
  • Installing Python Packages
  • Importing and Parsing Data

Session links

Optional readings

  • See #random channel for code snippets

Session 5: Animation

  • Review
  • Show & Tell
  • Animation techniques
  • Easing
  • Saving and exporting

Session links

Additional resources

Drawbot resources

Python resources

Drawbot Modules

Drawbot projects

Drawbot script collections