why code?

There was a day when designers asked themselves: ‘Why use a computer for design?’. Some argued that a computer was not needed for being a good designer. The important thing was the designer himself/herself. They were right.

Some years later and there is hardly any designer working without a computer. The computer has become the designer’s main tool (sometimes even the only one nowadays).

Software is developed mainly by engineers, not by designers. This makes the designer constrained by the engineers’ thoughts and ideas, not by his/her own. Programming gives the designer more control over his/her tools, and therefore over the design process. It allows one to follow the own workflow and think beyond the resources included in the software.

Probably you don’t need to know how to program to be a better designer. But it might help. And it won’t hurt, for sure.



In 40 hours of classes divided in 5 days, we’ll learn the basics of the Python programming language and how to apply it in the generation of 2D graphics (using DrawBot). We’ll also learn the basics of scripting for typeface design and font production with RoboFab & UFO (using RoboFont).

The workshop can be held in English, Spanish and Portuguese. Additional explanations can also be given in German, Dutch and Catalan.


The goal is to understand how code works, and to become a better designer by developing your own tools and taking control of your design process.

Participants should finish the course with the ability to:


No previous programming knowledge is necessary. We’ll start from zero, work hard, and end up writing small useful scripts.

Atendees should bring their own laptop with administrator permissions. Please get in touch if you need any special help.



Python is a high-level interpreted object-oriented programming language created by Guido van Rossum.

Python is used by large and small organisations across many domains, for building web applications, performing mathematical and scientific computation, natural language processing etc.

Python is also widely used as a scripting language in type design and font production tools, being supported in all major font editors.



Drawbot is an application developed by Just van Rossum for teaching Python programming to graphic design students. It allows to learn the basics of programming while getting visual results from the first line of code, making more exciting the process of learning how to think beyond the existing design tools. Its brand new version 3 is developed together with Frederik Berlaen.



RoboFab is a Python library which allows to talk directly to font objects (like glyphs and contours and points etc) while working with fonts and type design. It is developed and maintained by Tal Leming, Just van Rossum and Erik van Blokland.



UFO (Unified Font Object) is an XML-based format for storing font data. Therefore it’s human-readable, cross-platform and cross-application. The UFO format is supported by all major font editors, and is actively mantained and extended.



RoboFont is a flexible font editor written in Python and developed by Frederik Berlaen. It implements the RoboFab object model with some additional functionality, and allows total customisation of its interface. RoboFont can serve as the foundation for your own custom tools, giving your total control over your workflow.



Vanilla is a library developed by Tal Leming which makes it easy to build native Mac dialogs and interfaces with Python. It gives control over many kinds of GUI widgets such as windows, buttons, input fields, sliders etc.

visit vanilla on github


The workshop is taught by Joancarles Casasín and Gustavo Ferreira, two (typo)graphic designers with several years of experience using Python to automate their design process. Together they complement each others’ knowledge and offer advice to participants during the workshop.

Gustavo Ferreira

Gustavo Ferreira is a designer from Rio de Janeiro, Brazil, currently living and working in Amsterdam, The Netherlands.

He graduated in Graphic and Product Design at the Esdi, in Rio de Janeiro, and continued his studies at the HfG Schwäbisch Gmünd (Communication, Planning and Design) in Germany, and at the KABK (Type&Media) in The Netherlands.

Gustavo is the author of the Elementar font system, a flexible typeface system for screens; and the creator of hTools2, an open-source font production toolkit for RoboFont.

In 2009 he founded his one-man digital laboratory Hipertipo, where he currently works full-time as independent researcher, typeface designer and visual programmer. Occasionally, he gives type design and programming workshops, and shows his work in international conferences.

He also worked for FontShop International as community manager of FontStruct (2009), and for Typotheque as assistant and customer support (2010-2011).


Joancarles Casasín

Homo Sapiens. Accidentally born in Barcelona, consciously F.C. Barcelona fan. Gemini. When he was a kid he wanted to be a butcher or sports journalist, you see. Trained as graphic designer, he draws type and he’s a protoprogrammer of small tools for type design, self-taught and active.

Co-founder of Typerware, he continued drawing letters, numbers and punctuation signs using the name of BaseLab.

Specialized in custom type design, he has drawn paths which are part of about twenty corporate typefaces including Adidas' adiNeue, Vibo,, Kipling, The Born Cultural Center, STM Montreal, Sid Lee, Canada Museum for Human Rights and San Francisco Art Institute, among others. The year 2012 has been designing the production process and programming the production system from creating tens of fonts from original hadwritings (including Messi's, Rafa Nadal, CR7 and Neymar) for My Star Autograph.

This year has taught regular and occasional sessions always linked to letter shapes in Eina, Bau, UAB and Blanquerna Universities. He gives talks or workshops wherever is asked, including vermouth discussions where we talk about anything related to the design, which are their favorites.

He has very few prizes. Talks about food when eating. Looks nothing less than he should. Expects the impossible. It rains when he does washing and someone said in public that does better job in the kitchen than with the keyboard and the mouse.


São Paulo

Workshop at Casa#55 in São Paulo.

From 3rd (Monday) to 7th (Friday) February 2014.


Mon (1) Tue (2) Wed (3) Thu (4) Fri (5)
09:00-10:00h workshop introduction parametric (type)design identity, while loops style guide, naming group discussion
10:00-11:00h introduction to Python DrawBot transformations DrawBot pages, saving files introduction to UFO and RoboFab individual work and feedback
11:00-12:00h DrawBot typesetting introduction to vanilla
12:00-13:00h program logic DrawBot paths DrawBot variables RoboFont extensions, scripting
13:00-14:00h lunch lunch lunch lunch lunch
14:00-15:00h sets and dictionaries DrawBot BezierPath functions, modules group discussion individual work and feedback
15:00-16:00h introduction to DrawBot individual work and feedback
16:00-17:00h DrawBot text and images objects
17:00-18:00h randomness DrawBot CMYK and gradients reading and writing files final presentation


Aline Coutinho · Daniel Sabino · Débora Gonzales · Fernando Dias · Filipe Negrão · Hugo Bler · Marina Chaccur · Rafael de Azevedo · Thaísa Miyahara · Thiago Lacaz


01 02 03 04 05 06 07 08 09 10 11 12 13 14


01 02 03 04 05 06

Rio de Janeiro

Workshop at the Escola Superior de Desenho Industrial in Rio de Janeiro.

From 20th (Monday) to 24th (Friday) January 2014.


Mon (1) Tue (2) Wed (3) Thu (4) Fri (5)
09:00-10:00h workshop introduction randomness functions individual work and feedback individual work and feedback
10:00-11:00h introduction to Python Bezier paths + exercises
11:00-12:00h modules
12:00-13:00h conditionals text discussion
13:00-14:00h lunch lunch lunch lunch lunch
14:00-15:00h sets and dictionaries style guide variables, saving reading and writing files individual work and feedback
15:00-16:00h introduction to DrawBot transforms objects
16:00-17:00h DrawBot exercises images, Bezier, clippath discussion individual work and feedback final presentation
17:00-18:00h UFO + RoboFont


Arthur Lessa · Cecília Sarquis · Celina Kushnir · Diana Dias · Felipe Casaprima · Julia Garcia · Juliana Moore · Matheus Barbosa · Marcos Leme


01 02 03 04 05 06 07 08 09 10 11 12


01 02 03 04 05 06 07 08 09



Workshop at the Universität für angewandte Kunst in Vienna, Austria.

From 21st (Monday) to 25th (Friday) October 2013.


Mon (1) Tue (2) Wed (3) Thu (4) Fri (5)
09:00-10:00h workshop introduction other tools Python modules individual work and feedback individual work and feedback
10:00-11:00h parametric typefaces glyph descriptions introduction to UFO
11:00-12:00h Python exercises in DrawBot introduction to RoboFab
12:00-13:00h group discussion group discussion
13:00-14:00h lunch lunch lunch lunch lunch
14:00-15.00h introduction to DrawBot basic font logic introduction to RoboFont individual work and feedback individual work and feedback
16:00-17.00h introduction to Python Python exercises in DrawBot vanilla demo final presentation
17:00-18.00h NodeBox 1 RoboFab/RoboFont exercises group discussion


Francesco Ciccolella · Gerhard Jordan · Jakob Zerbes · Maria Kanzler · Malte Zander · Pia Scharler · Phillip Daun · Sarah Podbelsek · Sebastian Kubik · Valerija Ilcuka


01 02 03 04 05 06 07 08 09 10


01 02 03 04 05 06 07



Workshop during the Typoweek in Barcelona, Spain.

From the 1st (Monday) to the 5th of July (Friday) 2013.


Mon (1) Tue (2) Wed (3) Thu (4) Fri (5)
09:00-09:30h workshop introduction NodeBox libraries introduction to RoboFab object-oriented programming individual work and feedback
10:00-11:30h introduction to Python NodeBox exercises
12:00-13:30h RoboFab exercises OOP exercises
13:00-13:30h group discussion group discussion group discussion group discussion group discussion
14:00-15:00h Lunch Lunch Lunch Lunch Lunch
15:00-15.30h introduction to NodeBox project proposal introduction to RoboFont individual work and feedback final presentation
16:00-16.30h Python modules RoboFont extensions
16:30-17.00h introduction to hTools2
17:00-17.30h NodeBox examples conclusion
17:30-18.00h free work in NodeBox NodeBox and UFOs TypoWeek TypoWeek


Albert Creus · José Román Gálvez · Jose Manuel Urós · Juan Luis Blanco · Kalapi Rahul Gajjar · Laura Meseguer · Michele Patané · María Pérez Mena · Noe Blanco · Rosa Maria Martin Sol · Octavio Pardo


01 02 03 04 05 06 07 08

get in touch

for general questions and information

Joancarles Casasín (Barcelona)

Gustavo Ferreira (Amsterdam/Rio de Janeiro)


A big thanks to Just van Rossum & Erik van Blokland, Tal Leming and Frederik Berlaen for building the tools and libraries we use in the workshop, and for making them available under generous licences.