DrawBot is an environment for creating graphics programatically in macOS using Python. It is open-source and can be downloaded freely from drawbot.com.

DrawBot was originally developed by Just van RossumAn independent type designer, graphic designer, software developer and teacher. Original creator of FontTools and DrawBot. as an educational tool for teaching programming to designers, and has grown into a full-fledged platform for automating the creation of all kinds of graphic material.

multiple output formats
DrawBot can save vector graphics (SVG, PDF), raster images (PNG, JPEG, TIFF, GIF, BMP) and animations (GIF, mov, mp4).
advanced typography
DrawBot offers a full range of typographic controls, including support for OpenType features and variable fonts, hyphenation, tabulation, access to font metrics etc.
interaction with code
DrawBot includes a small set of UI controls – sliders, buttons, input fields, etc. – which can be used to add interaction to your scripts. The code editor has special code interaction features for some types of values, and a live coding mode which executes the code as you type.

DrawBot app

DrawBot is a stand-alone application for macOS. The app includes a Python interpreter, and a development environment with a code editor and a programmable canvas. A pipA package installer for Python. It can be used to install packages from the Python Package Index (PyPI) and other indexes. package installer is also included.

DrawBot module

DrawBot can also be used as a Python module, without the UI. After installing the module, you can use import drawBot in your scripts and generate images with code.

DrawBot extension for RoboFont

DrawBot is available as a RoboFont extension too!

Because it runs inside RoboFont, this version of DrawBot has access to the entire RoboFont API, including fontParts.world objects such as CurrentFont, CurrentGlyph, AllFonts etc. It also provides a handy drawGlyph(glyph) function to easily draw a RGlyph objects into the DrawBot canvas.

DrawBot package format

DrawBot scripts often require additional files such as image resources, Python modules, data files, etc. The .drawbot package format makes it easier to share and distribute such multi-file projects.

DrawBot packages can be built using the Package Builder window included in DrawBot. Open a .drawbot file by double-clicking or dropping it on top of DrawBot.

Last edited on 01/09/2021