openwind, a more up to date Python library for wind instrument design from Université de Bordeaux.
chalumier, a Kotlin project using demakein as a starting point by MarkChuCarroll.
Demakein is software to design and make woodwind instruments using a 3D printer or CNC mill. The "design" phase determines the size and placements of holes, and shape of the bore. The "make" phase then translates this design into a 3D object, and segments it for printing or milling.
Built-in instruments include flutes, whistles, and shawms. These instruments are parametric, they can be transposed to the size you want and offer a variety of customization options.
If you're familiar with Python, it's also possible to design woodwind instruments to your own specifications by writing a short script. Several example scripts are included with the source code. For example you could design an instrument to play exactly the scale you want, or which had a novel fingering scheme.
# Getting Demakein
# Printable designs
# Fingering charts
# Drinking-straw reeds for shawms
# How might I acquire one of these instruments?
# 3D printer advice
# Class notes
# Example milling pattern
Getting Demakein
Demakein is a Python 3 command-line program and library.
Version 1.1 released in July 2025 updates Demakein to Python 3, and has some new dependencies. If you want the Python 2 version, use version 0.18.
Printable designs
If you're not into Python hacking and just want to print an instrument or two, check out the designs I've uploaded to the Thingiverse.
See also:
Fingering charts
- folk-flute-and-whistle-fingering.pdf
Folk flute and whistle fingering system (i.e. penny-whistle fingering).
- pflute-fingering.pdf
Pflute fingering system, similar to a recorder.
- shawm-fingering.pdf
Fingering system for shawm, similar to recorder.
- folk-shawm-fingering.pdf
Fingering system for "folk shawm", similar to penny-whistle.
Drinking-straw reeds for shawms
How might I acquire one of these instruments?
- If you have a 3D printer, download pre-built designs from Thingiverse and print them out.
- Find your local hackerspace, and find someone willing to print the instrument or get you started with your own 3D printer.
- Shapeways, etc: Use one of the designs I've already uploaded to Shapeways, or upload a design from the designs I've uploaded to Thingiverse. I tested the "strong & flexible" material, and it produces an excellent flute. A number of similar services can be found online.
- If you have a milling machine, install the software, "design" the instrument you want then "make" it with milling parameters appropriate to the materials and mill bits that you have. Demakein will cut the instrument into pieces that can be glued together to make the instrument, and pack them into blocks to be carved. This is the theory, some hacking may be required to get this to work.
- If you hail from the Kingdom of Lochac, ask me about printing or milling an instrument for you for a trade or a lowish price.
3D printer advice
The number one problem people encounter is that any tiny holes in the instrument may prevent sound from being produced. These might be gaps between segments, or holes in the printed walls.
High wall thickness and infill produces a better tone, presumably less energy is lost to the walls the more solid they are. This also helps ensure there are no tiny leaks.
I print instruments in several segments, with each of the segments in a vertical orientation. These segments then need to be joined together without any leaks. The method for this depends on the material, see below. The segments Demakein generates include guide prongs that will ensure their correct orientation.
Socketed joints: Sockets are not my current preferred way to construct instruments from multiple segments, however if desired they can be produced with the "--join straight" option. Often the head part of the instrument (whistle / flute / shawm) will produce sound, but when further segments are attached it stops working. This is very probably a problem with the joints, even if there is no obvious leak.
PLA printing (2025)
I am currently (2025) experimenting with PLA printing on a Bambu Labs P1S printer. This seems to be working well.
Setting the number of wall loops very high will produce a solid instrument. This avoids any problems with holes in the walls.
Gluing segments: Segments can be glued together with super-glue (cyanoacrylate).
See also Romansax's notes on printing with PLA here.
ABS printing (2015)
I used to print in ABS plastic with 4 layers of wall and 50% infill, using a Replicator 2X.
Welding segments: Segments can be welded together with acetone. This is easily achieved by dipping the ends of pieces you wish to join in acetone for 15-20 seconds, then holding them firmly together. Use appropriate safety equipment when using acetone (gloves, goggles, good ventilation)!
Class notes
These are some notes on medieval and renaissance instrument making, with some practical discussion of trade-offs imposed by instrument physics (effects of tube shapes, hole sizes, bore deviations):
Example milling pattern
Milling two sides of a piece of wood to make a soprano flute. The holes in the corners are for anchoring pegs to ensure the two sides are aligned.