Library for working with the AxiDraw v3 pen plotter.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
axi py3 fix Mar 26, 2018
examples rush Jul 24, 2018
.gitignore, rearrange files Jan 8, 2017 add LICENSE Jan 8, 2017 Update May 14, 2017
requirements.txt python 3 fixes Mar 5, 2018 python 3 fixes Mar 5, 2018


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


  • primitives
    • circles, arcs, beziers
  • svg support


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__':