generativepy versions

Martin McBride, 2020-08-27
Tags version
Categories generativepy generative art

The latest released version on generative can be found on the Python Package Index (PyPI).

The version available on github will often have extra features that aren't yet in the release.

The documentation on this site will usually match the code on github. This means it should basically match what is on PyPI, but it might cover new features that haven't been released yet.

Version history

Latest on github

  • No change

v2.5 - 5 Jun 2021 - current PyPI version

  • New analytics module to display histigram and stats for frames.
  • Extra nparray functions for creating data arrays.
  • Add a simple turtle implementation to geometry module.
  • Add simple shader and shapes to geometry3d module.
  • Add out parameter to nparray.make_nparray_frame function.
  • Support for segments, rays and full lines in Line objects.
  • Fix bug with greyscale nparray images.
  • Make background colour transparent by default for RGBA bitmaps.
  • Improve appearance of axes in graphing module.
  • Improve coverage of unit tests and image tests.

v2.4 - 7 Mar 2021

  • 3D drawing module using moderngl.
  • Additional graph styling methods.
  • Add text offset method.
  • Add Image class to render images in drawing module.
  • Add easing support to tween module.
  • Add pad function Tween class.
  • Colormap improvements
  • New nparray module allows bitmap images to be created using numpy arrays.
  • Added frame creation functions to drawing and bitmap modules.
  • New utils module.

v2.3 - 17 Nov 2020n

  • Add bitmap module.
  • Add gif module.
  • Add pixel scaling parameter for graph plots.
  • Add line and fill styles to Shape objects.
  • Implement subpath and extend for creating complex paths.
  • Add bezier curves.
  • Add path method to store a path for later use, and Path object to redraw a path.
  • Add clipping support.
  • Add Color nethods to convert colours to byte arrays.
  • Add colormap support.

v2.2 - 27 Aug 2020

  • Add line, polygon, circle, square, triangle, ellipse objects.
  • Add angle marker, tick, paratick, arrowhead decorators.
  • More code examples.
  • Additional documentation on this site.
  • Add offset method to Text class
  • Minor breaking change - rectangles now use a single tuple parameter (x, y) to set the corner position, rather than separate x, y parameters. This is for consistency with other drawing objects.

v2.1 - 1 Aug 2020

  • Fix a few naming inconsistencies, for example using camelCase rather than snake_case. These have been tidied up to improve things moving forward.
  • Add Geometry module for drawing shapes.
  • These break v2.0 code slightly.

v2.0 - 26 July 2020

  • Use native Pycairo calls to draw, which adds a lot of new capabilities compared to V1.x. This is a major change that will require changes to any code based on v1.x.
  • Color module also has new features for modifying colours.


Older versions used a different drawing model, wrapping the underlying Pycairo calls to emulate Processing.

This seemed like a good idea at the time, but created a lot of extra work for relatively little benefit, and ultimately made the drawing model less capable that it could be. Use a later version if you can.

If you found this article useful, you might be interested in the book Computer Graphics in Python or other books by the same author.


Popular tags

2d arrays abstract data type alignment and animation arc array arrays bezier curve built-in function callable object circle classes close closure cmyk colour comparison operator comprehension context context manager conversion creational pattern data types design pattern device space dictionary drawing duck typing efficiency else encryption enumerate fill filter font font style for loop function function composition function plot functools game development generativepy tutorial generator geometry gif gradient greyscale higher order function hsl html image image processing imagesurface immutable object index inner function input installing iter iterable iterator itertools l system lambda function len line linspace list list comprehension logical operator lru_cache magic method mandelbrot mandelbrot set map monad mutability named parameter numeric python numpy object open operator optional parameter or partial application path polygon positional parameter print pure function pycairo radial gradient range recipes rectangle recursion reduce rgb rotation scaling sector segment sequence singleton slice slicing sound spirograph sprite square str stream string stroke subpath symmetric encryption template text text metrics tinkerbell fractal transform translation transparency tuple turtle unpacking user space vectorisation webserver website while loop zip