Skip to content

Butterfly joint

joints.butterfly_joint

Two slabs butted edge to edge, held by three butterfly keys across the joint (as in a live-edge table top), inlaid flush into the top faces, half of each key in each slab.

Butterfly joint, assembled

Butterfly joint, exploded

Parameters

Parameter Default
length 600
width 200
stock 30 mm board, oak

Change them in a design file (see Change an example):

from woodwright.examples import joints

design = joints.butterfly_joint(length=750)

Drawings

The plans in one PDF: plans.pdf.

Assembly

assembly

Parts

parts

Key

key

Slab

slab

Cut list

slab  600 x 200 x 30 mm  oak, 2 pieces: slab_1, slab_2
      - butterfly mortise 90 x 45 mm, waist 15, 8 deep, in top_face, 150 from left_end, 0 from back_edge, across the joint with slab_2
      - butterfly mortise 90 x 45 mm, waist 15, 8 deep, in top_face, 300 from left_end, 0 from back_edge, across the joint with slab_2
      - butterfly mortise 90 x 45 mm, waist 15, 8 deep, in top_face, 450 from left_end, 0 from back_edge, across the joint with slab_2
key   90 x 45 x 8 mm  walnut, 3 pieces: key_1, key_2, key_3
      - shaped to a butterfly, waist 15 mm

Code

From woodwright/examples/joints.py, which imports the names it uses (see From an example to your own design):

def butterfly_joint(length: float = 600, width: float = 200, stock: Stock = THICK_OAK) -> Assembly:
    """Two slabs butted edge to edge, held by three butterfly keys across
    the joint (as in a live-edge table top), inlaid flush into the top faces,
    half of each key in each slab."""
    asm = Assembly("butterfly_joint")
    a = asm.add(Board("slab_1", stock, length=length, width=width))
    b = asm.add(Board("slab_2", stock, length=length, width=width))
    asm.join(Butt(a.back_edge, b.front_edge))
    for i in range(3):
        key = asm.add(Board(f"key_{i + 1}", BUTTERFLY_WALNUT, length=90, width=45))
        at = {a.left_end: length * (i + 1) / 4, a.back_edge: 0}
        asm.join(Butterfly(a.top_face, key, at=at, other=b.top_face))
    return asm

Exported with woodwright 0.9.0 on 2026-10-25.