Design woodwind instruments and make them with a 3D printer or CNC mill.
Project description
Demakein
Paul Harrison - pfh@logarithmic.net
Demakein is a set of Python tools for designing and making woodwind instruments.
This generally consists of two stages:
The “design” stage is a numerical optimization that chooses the bore shape and the finger hole placement, size, and depth necessary for the instrument to produce the correct notes for a given set of fingerings.
The “make” stage takes a design and turns it into a 3D object, then then cuts the object into pieces that can be CNC-milled or 3D-printed.
Demakein can either be used via the command “demakein” or as a library in Python. Demakein has been designed to be extensible, and I hope you will find it relatively easy to write code to create your own novel instruments. You can either create subclasses of existing classes in order to tweak a few parameters, or create wholly new classes using existing examples as a template.
Requirements
The “design” tools require nesoni. They should work on all platforms that Python runs on.
nesoni
pip install nesoni
The “make” tools additionally require CGAL and associated paraphenalia. I have only tested this on Linux.
g++
CGAL
cmake
apt-get install g++ libcgal-dev cmake
cffi
pip install cffi
Demakein has been tested under Linux. Other operating systems may require some alterations to make the C++ compilation system work.
Installation
Easy way
pip install demakein
From source, download and untar tarball then
python setup.py install
You can then run program by typing
demakein
or
python -m demakein
Example
Create a small flute:
demakein design-straight-folk-flute: myflute –transpose 12
demakein make-flute: myflute
Files are created in a directory called myflute.
We’ve just made STL files for 3D printing. How about if we want to CNC-mill the flute?
demakein make-flute: myflute –mill yes –open yes –prefix milling
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.