Python for Designers

by Roberto Arista

Fork me on GitHub

Welcome to Python for Designers

This manual is an introduction to Python3 and DrawBot. It covers some language and programming basics as well as a good share of the DrawBot API. If you are looking for a gentle introduction to programming and you are often busy with drawing stuff on a screen, this is maybe the right place for you!

Why This Manual

Enter if you want to discover the reasons behind this project

>>> read()

A Few Words About

Disclaimers, acknowledgments, and various notes concerning audience and sources

>>> read()


Should a Designer Code?

Before diving into the code, let’s clarify why coding could be a good skill for a designer

>>> read()


Interfaces Are a Solid Object

Monopoly, teaching and autonomy of graphics and code

>>> read()


The Elements of a Python Program

Keywords, operators, expressions. Here we get a grip on the basics of the language

>>> read()


Using DrawBot

This tool will bring us along during our journey in the Python world

>>> read()


Coordinates and Primitives

It is time to draw. Here we deal with the canvas properties and drawing functions

>>> read()


Basic Data Types

What values are made of? It is time to answer some existential questions

>>> read()


How to Make Choices

Unfortunately, this is not the self-help section of the manual. It is all about the conditional construct

>>> read()


How to Keep Doing Things Until You Need To

The conditional construct can be easily extended with iteration. Let the computer do the hard work!

>>> read()


Strings, Encoding and Unicode

Before diving into typesetting, we should have clear in mind how computers deal with text

>>> read()


Transform Strings

Efficiently transforming values into strings is essential for proper typesetting

>>> read()


Typesetting with DrawBot

Finally drawing text into DrawBot, single or multiple lines

>>> read()


How to Browse Sequences

Never heard of tuples and lists? Here we go!

>>> read()



A collection of handy Python super short recipes 🍳

>>> read()



A miscellanea of advanced exercises

>>> read()


Eager to learn more? Here's a continuously evolving reading list 📚

>>> read()


Hands-on Guides

Looking for an opportunity to use the knowledge you acquired from the manual? This section is packed with step-by-step guides for real application scenarios

>>> read()

Online Courses

This manual is free to read and free from ads (and it will be like this forever). In order to sustain its development, I offer online courses taught in English. You will get a proper introduction to Python and Drawbot plus support in solving coding exercises. Check them out and let me know!


This resource is far from being complete, if you want to know where the development is headed, check the Road Map. If you spot any mistake, or you think something could be explained better, open an issue at the project repository. I also accept to review pull requests.


Python for Designers is an initiative by Roberto Arista. Beatrice Bianchet and Silvio Lorusso provided substantial help. If you want to check a complete list of the technology & people involved in making this website, you can consult the Acknowledgements and Impressum pages.