Tools for coding graphics with Python

Flat

xxyxyz.org/flat

flat

Pros

  • object-oriented syntax

  • usable as a module

  • export as image, svg, pdf

Cons

  • no active development

Shoebot

shoebot.net

shoebot

From the website:

Shoebot is a tool to automate the process of drawing vector graphics using a minimal and easy-to-understand syntax.

It is a rewrite of Nodebox 1 by Frederik de Bleser and Tom de Smedt, with the purpose of having an equivalent tool in GNU/Linux systems. Nodebox 1 is itself based on DrawBot by Just van Rossum. Shoebot draws using the cross-platform Cairo graphics engine.

It follows a rich lineage of tools dedicated to generative creativity:

  • Design By Numbers

  • Processing

  • Scriptographer

  • Paper.js

For more about the nature of creative coding and generative design, be sure to read The Nodebox 1 theoretical introduction.

Pros

  • editor (GUI) included

  • use as a python module (without shoebot’s editor) possible

  • works well with Jupyter Notebooks

  • export of images, svg, pdf

  • export of animations as .mp4

Cons

  • not object-oriented coding, thus more complicated transition to other libraries

  • no CMYK

DrawBot

drawbot.com

drawbot

Pros

  • editor (GUI) included

  • easy extendable through a library manager

Cons

  • exclusive to Mac

  • uncommon coordinate system: (0,0) is in the bottom left corner, while top left is common

  • not object-oriented coding, thus more complicated transition to other libraries

  • hides object-oriented design

PageBot

pagebot on github

From the website:

PageBot® is a scriptable page layout, vector graphics and typography environment that enables designers to create high quality documents in various print-ready and web-based formats. It is available as a Python library with multi-platform support based on Flat and as a Mac OS X extension that uses DrawBot.

Cons

  • currently no active development

Py5 and P5

py5coding.org

p5 on github

Pros

  • implementations of Processing. Thus it should be easy to transfer code from Processing examples.

Cons

  • not object-oriented coding, thus more complicated transition to other libraries

More libraries

vsketch

svgwrite

drawsvg

gizeh

Tools for Data Visualization

Matplotlib and ProPlot

Matplotlib

ProPlot

Seaborn

Seaborn — Statistical data visualization in Python

seaborn

More libraries for data visualization

Bokeh — Interactive data visualization

pygal — Beautiful python charting

Other tools for generative computation

Nodebox 3

nodebox.net

nodebox

FPDF

fpdf2 – PDF document generation