Python for makers

Audience level:
Embedded Systems
March 10th 11:05 a.m. – 11:45 a.m.


Digital fabrication is the art of translating digital designs into physical objects. Using personal machines that are controlled via software, a live demonstration of CNC milling and 3D printing will also be performed. This talk is a walkthrough from 3D models to machine motion, that shows how we can use Python to write GCODE generators that create endless form.


This talk is aimed to the beginner to intermediate Python developer because it covers basic uses of certain parts of the standard library. it should also be of interest to people who are curious about digital fabrication and geometry.

First, 2 personal fabrication machines are presented: A Sherline Milling machine and the latest Makerbot dual extruder 3D printer. A very quick functioning overview is presented, showing how electric pulses are translated to XYZ movements of the toolheads, as well as the difference between hot plastic extrusion onto a surface and milling away material.

Then the rationale for a machine controller software is explained (being able to control the machine in terms of distances and feed rates rather than pulses), and an overview of gcode is provided. The first python scripts demonstrated generate gcode for milling operation. They are based on the code behind is presented with 2 or 3 slides of code and a Python logo is then engraved (live demo, 5 min) while an overview of the code is given: - how primitives map to python methods and gcode. - how it was easy to move from a console app to gui and to a web app using only the standard library features. - how this parametric approach to design allows the user to change certain aspects (materials, forms) and regenerate the tool path automatically (as opposed to a static drawing or the normal CAM based approach)

The second part of the talk deals with 3D printing. The 3D printer is demoed first (loading a 3D model file, creating slices with the desired density and launching the tool), because the print will last about 10 minutes. As the machine runs, the following python code will be shown: - extracting triangles from an stl file using generators - slicing: finding intersection contours at a given height - pathing: generating patterns for the extruder - hard core parallelization of certain tasks using pyOpenCl (TBD, depending on the code base available) The presentation ends by assembling the new object made entirely from a digital representation (except for the LED circuit).
The code will be based on Skeinforge of Makerbot’s new slicer (in development in Python3 right now).

Makerbot operators are growing in numbers (more than 4000 units of open hardware sold) and all use Python to slice their 3D models and print them.