The tight coil

A trumpet bore wound as tightly as a coil can go without touching itself. 65 blocks, 1040mm of centreline, 33 sections, six whole turns at 42.7mm a turn, nothing touching — and 16 elbows, one at every other piece. It is the tightest coil in this repository whose blocks never meet, and it buys that by cutting the turns the generator cannot fold.

Turn it → The viewer is a page of its own, not a frame in this one: drag to rotate, and the slider reveals the bore a block at a time in the order you would assemble it.

The walk is the whole design

N1 W2 U2 E2 N2 D2 W2 U2 N2 E2 D2 W2 N2 U2 E2 D2 N2 W2 U2 E2 N2 D2 W2 U2 N2 E2 D2 W2 N2 U2 E2 D2 N1

The first term is the way you face at the mouth and how far you go before anything turns; every term after it turns where you stand and then travels that many blocks. So the bore is 1 + the sum of the numbers — 64 + 1 = 65. Axes are Minecraft's: U/D are +Y/−Y, N is −Z, S is +Z, E is +X, W is −X.

It goes round W U E D, two blocks a side, and steps two blocks north after every three sides, so the loop never sits in one plane. Three sides are three quarters of a turn, so the coil advances 2⅔ blocks a turn — 42.7mm — and the whole walk measures the same end to end: 16 blocks of axis in six turns. Eight groups of three sides make 24 sides — six whole turns — and the walk ends on the same line it began: the first and last blocks are 16 blocks apart along the axis and nowhere apart across it. The coil is right-handed, the same way round as the three-turn trumpet.

The walk is kept in ../tools/walks/tight_coil.txt, and regress.py beside it names this folder as where its cut files land.

Why it cannot be tighter

Two blocks is the shortest a side can be and the shortest a step along the axis can be, if no block is to touch another. Each was tried one block shorter in bore_split.py:

walk rise a turn tube a turn elbows touching pairs
this one, sides 2, steps 2 42.7mm 10.8 blocks 16 0
steps of 1 21.3mm 9.7 blocks 16 35
sides of 1 42.7mm 6.8 blocks 32 8

All three are six turns with a one-block lead at each end. A step of one block puts each turn face to face with the one before it, and a side of one brings the loop's own sides together.

Contact is counted between blocks three or more apart along the bore, as everywhere in this repository: blocks two apart touch at every turn, and that is the geometry of turning rather than the bore coming back on itself.

What it costs: an elbow at every other piece

Of the 31 terms between the two ends, 23 sit between terms on different axes — W2 between N1 and U2, say — and a turn there needs a leg of 3 to fold into a bend. The other 8 are hairpins, like the U2 in W2 U2 E2, and 2 is enough for those. Cut to 2, the 23 short legs leave 16 turns with nothing to fold into, and each is cut as an elbow: a single block that is a piece of its own.

Raise those 23 legs to 3 and the first three turns are exactly the three-turn trumpet's walk, which has no elbows and rises 64mm a turn at the same 16mm block, rather than 42.7.

So the 33 pieces alternate: a straight at the mouth, then elbow, bend, elbow, bend, to a bend at the bell. The 16 bends are three blocks each and the 16 elbows one.

Seven elbows are left open on the inside of the turn — sections 6, 10, 14, 18, 22, 26 and 30. An elbow's two openings share an edge, so the inside corner of the turn has no wall of its own; a neighbour normally closes it with a tongue, a wall run one ply past the joint. At these seven neither neighbour can put the tongue on a wall, so the generator leaves the corner open rather than guessing. It is not a leak — the neighbours' walls and the elbow's plates seal it from outside — but it is a 3 × 3mm notch along the inside of the turn, and a joint with less bearing surface. The other nine elbows are closed.

The numbers

blocks 65
centreline 1040mm
sections 33 — 1 straight, 16 elbows, 16 bends
parts 164, over 33 sheets
bounding box 48 × 48 × 272mm — 3 × 3 × 17 blocks
airway 10mm square, constant
block pitch 16mm — 10mm of air in 3mm walls
rise 42.7mm a turn — 2⅔ blocks — over six whole turns
elbows 16; seven of them open on the inside of the turn
contact none
legs north 17, west 12, east 12, up 12, down 12
with the ends 1283mm — 90mm mouthpiece, 1040mm bore, 153mm bell

The 33 sections

Numbered from the mouthpiece; assemble in order. A section is one flat snake, so it is one SVG, and every part is engraved with its section number because the sections only go together one way.

# blocks kind in → out plate shape parts sheet
1 1 straight N → N 1×1 S1~a@-W 4 122 × 40mm
2 2 elbow N → W 1×1 EEN 4 128 × 40mm
3 3–5 bend W → U 2×2 BLU~f@-E 6 253 × 56mm
4 6 elbow U → E 1×1 EEN 4 128 × 40mm
5 7–9 bend E → N 2×2 BRD~f~g 6 250 × 56mm
6 10 elbow N → D 1×1 EEN 4 128 × 40mm
7 11–13 bend D → W 2×2 BDL~f@-N 6 250 × 59mm
8 14 elbow W → U 1×1 EEN 4 128 × 40mm
9 15–17 bend U → N 2×2 BRD~f~g 6 250 × 56mm
10 18 elbow N → E 1×1 ENE 4 122 × 43mm
11 19–21 bend E → D 2×2 BRD~f@-W 6 253 × 56mm
12 22 elbow D → W 1×1 EEN 4 128 × 40mm
13 23–25 bend W → N 2×2 BLD~f~g 6 250 × 56mm
14 26 elbow N → U 1×1 ENE 4 122 × 43mm
15 27–29 bend U → E 2×2 BUR~f@-S 6 250 × 59mm
16 30 elbow E → D 1×1 EEN 4 128 × 40mm
17 31–33 bend D → N 2×2 BLD~f~g 6 250 × 56mm
18 34 elbow N → W 1×1 EEN 4 128 × 40mm
19 35–37 bend W → U 2×2 BLU~f@-E 6 253 × 56mm
20 38 elbow U → E 1×1 EEN 4 128 × 40mm
21 39–41 bend E → N 2×2 BRD~f~g 6 250 × 56mm
22 42 elbow N → D 1×1 EEN 4 128 × 40mm
23 43–45 bend D → W 2×2 BDL~f@-N 6 250 × 59mm
24 46 elbow W → U 1×1 EEN 4 128 × 40mm
25 47–49 bend U → N 2×2 BRD~f~g 6 250 × 56mm
26 50 elbow N → E 1×1 ENE 4 122 × 43mm
27 51–53 bend E → D 2×2 BRD~f@-W 6 253 × 56mm
28 54 elbow D → W 1×1 EEN 4 128 × 40mm
29 55–57 bend W → N 2×2 BLD~f~g 6 250 × 56mm
30 58 elbow N → U 1×1 ENE 4 122 × 43mm
31 59–61 bend U → E 2×2 BUR~f@-S 6 250 × 59mm
32 62 elbow E → D 1×1 EEN 4 128 × 40mm
33 63–65 bend D → N 2×2 BLD~b~f 6 250 × 56mm

~a and ~b are the plain ends, where the mouthpiece and the bell land; the file names say buttin and buttout. @ names a wall that runs on as a tongue into the elbow beside it, and ~f and ~g mark a piece whose plate is flattened where it meets an elbow.

Several sections are the same shape — the twelve EEN elbows are one, the four ENE elbows another, and fifteen of the bends fall into six shapes — but each is cut separately so that it carries its own number.

The cut files

In ../parts/bore/concept/walk/coil/tight/bore/cut-files/:

bore10-coil-tight-01of33-straight1-lapW-buttin-cut-files.svg
bore10-coil-tight-02of33-elbow-EN-cut-files.svg
bore10-coil-tight-03of33-bend-LU-lapE-flatin-cut-files.svg
bore10-coil-tight-04of33-elbow-EN-cut-files.svg
bore10-coil-tight-05of33-bend-RD-flatin-flatout-cut-files.svg
bore10-coil-tight-06of33-elbow-EN-cut-files.svg
bore10-coil-tight-07of33-bend-DL-lapN-flatin-cut-files.svg
bore10-coil-tight-08of33-elbow-EN-cut-files.svg
bore10-coil-tight-09of33-bend-RD-flatin-flatout-cut-files.svg
bore10-coil-tight-10of33-elbow-NE-cut-files.svg
bore10-coil-tight-11of33-bend-RD-lapW-flatin-cut-files.svg
bore10-coil-tight-12of33-elbow-EN-cut-files.svg
bore10-coil-tight-13of33-bend-LD-flatin-flatout-cut-files.svg
bore10-coil-tight-14of33-elbow-NE-cut-files.svg
bore10-coil-tight-15of33-bend-UR-lapS-flatin-cut-files.svg
bore10-coil-tight-16of33-elbow-EN-cut-files.svg
bore10-coil-tight-17of33-bend-LD-flatin-flatout-cut-files.svg
bore10-coil-tight-18of33-elbow-EN-cut-files.svg
bore10-coil-tight-19of33-bend-LU-lapE-flatin-cut-files.svg
bore10-coil-tight-20of33-elbow-EN-cut-files.svg
bore10-coil-tight-21of33-bend-RD-flatin-flatout-cut-files.svg
bore10-coil-tight-22of33-elbow-EN-cut-files.svg
bore10-coil-tight-23of33-bend-DL-lapN-flatin-cut-files.svg
bore10-coil-tight-24of33-elbow-EN-cut-files.svg
bore10-coil-tight-25of33-bend-RD-flatin-flatout-cut-files.svg
bore10-coil-tight-26of33-elbow-NE-cut-files.svg
bore10-coil-tight-27of33-bend-RD-lapW-flatin-cut-files.svg
bore10-coil-tight-28of33-elbow-EN-cut-files.svg
bore10-coil-tight-29of33-bend-LD-flatin-flatout-cut-files.svg
bore10-coil-tight-30of33-elbow-NE-cut-files.svg
bore10-coil-tight-31of33-bend-UR-lapS-flatin-cut-files.svg
bore10-coil-tight-32of33-elbow-EN-cut-files.svg
bore10-coil-tight-33of33-bend-LD-buttout-flatin-cut-files.svg

Every file is millimetre-true at 1 user unit = 1mm. Blue engraves, then black cuts — blue writes the section number on every part, black frees it.

All 33 fit on one bed. ../parts/bore/concept/walk/coil/tight/bore/bore10-coil-tight-sheet1of1.svg is the whole xTool P2S bed, 600 × 305mm, with every section file placed on it whole and unchanged, 4mm apart and 4mm from the edge, except the bottom row, which ends 2.8mm from it. A section's parts stay together, so the numbers still find their neighbours. Cut it in place of the 33 files, or cut the 33 one at a time — they are the same paths.

Rebuild it

The generator lives in tools/ at the repository root, and both commands run from there. Report only, writing nothing:

python3 tools/bore_split.py tools/walks/tight_coil.txt --no-write

Writing rewrites every sheet in the folder and gates them, so it runs under the venv python that has the gate's dependencies:

cd tools && ~/Software/boxes/venv/bin/python bore_split.py walks/tight_coil.txt \
    --write ../parts/bore/concept/walk/coil/tight/bore

The bed sheet is drawn from those files, so it comes after them. bed_sheets.py packs each section whole and searches packing orders from a fixed seed, so the same command writes the same sheets; it re-reads what it wrote and exits 1 if a section is missing, moved off the bed, closer than 4mm to another, or changed.

It no longer writes the one sheet shipped here. That sheet was packed for a 308mm bed, and the bed turned out to be 305mm (cut-tested, 2026-10-19). Its parts end at 302.2mm, so it was kept and only its canvas trimmed. Packed for 305mm with 4mm at every edge, the same command writes two sheets, 28 sections and 5, and no seed tried did better:

python3 tools/bed_sheets.py parts/bore/concept/walk/coil/tight/bore/cut-files \
    parts/bore/concept/walk/coil/tight/bore bore10-coil-tight

The two ends

Only the tube belongs to an instrument. Neither the mouthpiece nor the bell is touched by the way a bore turns, and every bore here is on the same 10mm channel, so one of each serves all of them — the bell and the mouthpiece. The walk opens and closes on a single block, N1: the mouthpiece and the bell are long enough to carry the instrument clear of the coil without a longer lead.

More, and licence

The three-turn trumpet — the bore that plays, and the same coil with legs of 3 and no elbows.

The trumpet writeup — the idea, the notation, the gate, and the whole library.

The rest of the build files — every instrument, each with its own writeup.

Released under CC0 1.0.