Skip to main content

Create two-dimensional graphics and animations with code

Project description

PlotDevice is a Macintosh application used for computational graphic design. It provides an interactive Python environment where you can create two-dimensional graphics and output them in a variety of vector, bitmap, and animation formats. It is meant both as a sketch environment for exploring generative design and as a general purpose graphics library for use in external Python programs.

PlotDevice scripts can create images from simple geometric primitives, text, and external vector or bitmap images. Drawing commands provide a thin abstraction over macOS's Quartz graphics engine, providing high-quality rendering of 2D imagery and powerful compositing operations.

PlotDevice is a fork of NodeBox 1.9.7rc1 with support for modern versions of Python and Mac OS.

The new version features:

  • Runs natively on Intel and Apple Silicon and supports retina displays
  • Python 3 only (including a bundled 3.10 installation in the app)
  • images can now be exported in HEIC format and videos support H.265 (HEVC)
  • SVG files can now be drawn to the canvas using the image() command (thanks to the magical SwiftDraw library)
  • image exports have a configurable zoom to create 2x/3x/etc ‘retina’ images
  • revamped var() command for creating GUIs to modify values via sliders, buttons, toggles, etc.
  • updated text editor with multiple tabs, new themes, and additional key-binding modes emulating Sublime Text and VS Code
  • the module's command line interface is now accessible through python3 -m plotdevice
  • the command line tool has a new --install option to download PyPI packages for use within the app
  • document autosaving is now user-configurable
  • Bugfixes and misc. improvements detailed in the changelog

Version 0.9.5 added:

  • Python 3 compatible
  • Can now be built with system Python or Homebrew versions of the interpreter
  • Much faster import times on Yosemite thanks to a bundled copy of PyObjC 3.0.4
  • HTTP is now handled by the requests module and caches responses locally
  • Totally revamped typography system with support for OpenType features, pagination, multi-column text, character geometry, and more
  • Added 130+ unit tests (run them with python test) plus bugfixes for for measure(), textpath(),, read(), and the Preferences dialog

Version 0.9.4 added:

  • Enhanced command line interface.
  • New text editor with tab completion, syntax color themes, and emacs/vi bindings.
  • Video export in H.264 or animated gif formats (with GCD-based i/o).
  • Added support for external editors by reloading the source when changed.
  • Build system now works with Xcode or py2app for the application and pip for the module.
  • Virtualenv support (for both installation of the module and running scripts with dependencies).
  • External scripts can use from plotdevice import * to create a drawing environment.
  • Simplified bezier & affine transform api using the python ‘with’ statement
  • New compositing operations for blend mode, global opacity, and dropshadows
  • Simplified typography commands with stylesheet-based character styles
  • Now uses the system's Python 2.7 interpreter.


  • Mac OS X 11+
  • Python 3.6+

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plotdevice-1.0.0.tar.gz (404.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page