DrawBot is an enviroment for creating graphics programatically in macOS using Python. It is open-source and can be downloaded gratis from drawbot.com.
Developed originally as an educational tool for teaching programming to designers, DrawBot 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 as RoboFont extension
DrawBot is also available as a RoboFont extension. Because it runs inside RoboFont, this version of DrawBot has access to the entire RoboFont API, including
fontParts.world objects such as
AllFonts etc. It has also a handy
drawGlyph(glyph) function which draws an RGlyph object into the DrawBot canvas.
DrawBot as a module
DrawBot can also be used as a Python module, without the UI. After you install the module, you can
import drawBot into your scripts and create images with code.
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.
More DrawBot links
- DrawBot Forum
- A living archive of questions & answers, examples, discussions, etc.
- Daily DrawBot
- Animated gifs made with Python in DrawBot, mostly by Just van Rossum
- Rob Stenson — How to Say “Crunch” in Portuguese
- Article about using DrawBot and variable fonts to design dynamic interfaces for multiple languages.