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:

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


Shoebot is a useful tool for many use cases:

  • creating generative and procedural works, either for screen or print output
  • teaching code to non-developers by means of immediate visual feedback
  • prototyping visualizations and design concepts
  • automatically generating sets of vector images
  • live-coding and real-time tweaking of animated graphics
  • making Cairo-based tools and experiments using a simpler language


Originally built as a GNU/Linux version of Nodebox 1, Shoebot comes with many batteries included:

  • supports most of Nodebox 1’s functionality
  • user-friendly code editor
  • headless mode for quick execution without the GUI parts
  • run on a window or output files in PDF, PNG, SVG or PS formats
  • tweak running scripts via a simple GUI, a socket server or a text-based shell
  • can be loaded as a Python module to work inside existing programs


Shoebot is currently maintained by Stuart Axon and Ricardo Lafuente.

A good part of the code has also been contributed to by Francesco Fantoni, Sebastian Oliva, Paulo Silva, Dave Crossland, Gabor Papp, Julien Deswaef , Pedro Ângelo and Tetsuya Saito. Examples also contributed to by Artem Popov, Barak Itkin and Simon Budig.