Library for working with the AxiDraw v3 pen plotter.
Latest commit 61659a9 Jan 23, 2017 @fogleman committed on GitHub Update
Failed to load latest commit information.
examples paths Jan 16, 2017
.gitignore Update Jan 23, 2017
requirements.txt add requirements.txt Jan 7, 2017


Unofficial Python library for working with the AxiDraw v3 pen plotter.


  • control AxiDraw v3 directly from Python with a simple API
  • convenient command-line utility
  • constant acceleration (trapezoidal velocity) motion planning
  • path drawing order optimization
  • drawing transformations
    • translate, scale, rotate
    • scale and/or rotate to fit page
    • move to origin or center of page
  • preview drawing (render to png)
  • turtle graphics

Command Line Utility

Once pip install'd, you can run the axi command-line utility. Here are the supported commands:

axi on         # enable the motors
axi off        # disable the motors
axi up         # move the pen up
axi down       # move the pen down
axi zero       # set current position as (0, 0)
axi home       # return to the (0, 0) position
axi move DX DY # move (DX, DY) inches, relative
axi goto X Y   # move to the (X, Y) absolute position

TODO / Coming Soon

  • primitives
    • circles, arcs, beziers
  • svg support
  • progress / status while drawing


axi is not yet available on PyPI, so installation works like this:

git clone
cd axi
pip install -e .

Of course, installing in a virtualenv is always a good idea.

Then you can try the examples...

python examples/


Use the turtle to draw a dragon curve, filling a standard US letter page.

import axi

def main(iteration):
    turtle = axi.Turtle()
    for i in range(1, 2 ** iteration):
        if (((i & -i) << 1) & i) != 0:
  , 90, 36)
  , 90, 36)
    drawing = turtle.drawing.rotate_and_scale_to_fit(11, 8.5, step=90)

if __name__ == '__main__':