Living Hinge Generator

← All projects

Read the README

Parametric lattice-hinge ("living hinge") SVG generator for laser cutting. Output is millimetre-true — 1 user unit = 1mm with a physical width/height — so it prints and cuts at real size.

straight pattern: rows of parallel slits, offset row to row dogbone pattern: straight slits with a round relief hole at each end wave pattern: sinusoidal slits chevron pattern: zigzag slits
straight dogbone wave chevron
torsional pattern: I-cuts, straight slits with perpendicular end caps honeycomb pattern: a hexagonal lattice, bends on both axes auxetic pattern: rotating squares, bends on both axes crosshatch pattern: alternating short slits, bends on both axes
torsional honeycomb auxetic crosshatch

All eight patterns at 50 × 200mm. Click one to download the cut file. The pictures are display renderings — gold is the panel that stays, cream the slits the laser removes — with the stroke thickened and painted onto the panel. A real cut file draws a hairline on nothing at all, which a browser shows almost invisibly against a transparency checkerboard.

Built for LaserMadeMusic, so an instrument cut from flat sheet can have curved surfaces; the cutting and bending are shown there.

The rest of the build files — every instrument, generator and tool, indexed.

The operating guide — every option, the library API, and what each pattern is for.

Repository — the code, if you want to change a pattern or read how it works.

Download everything as a ZIP — the CLI, the library, the guide, all eight examples and the coupons.

Quick start

./living-hinge.js --list                          # patterns and their defaults
./living-hinge.js -p wave -w 80 -l 300            # 80 × 300mm wave hinge
./living-hinge.js -p chevron -w 80 -l 300 --margin 10   # with a 10mm margin
./living-hinge.js --help                          # every option

Every pattern is committed cut-ready in examples/ at 50 × 200mm, so you can cut one without running anything. Those are the files the guide's per-pattern figures describe.

Requires Node. No dependencies.

Eight patterns

Pattern Defaults (mm)
straight pitch 3, bridge 2
dogbone pitch 3, bridge 3, hole 0.5
wave pitch 3, bridge 2, wavelength 13, amplitude 1, step 0.5
chevron pitch 3, bridge 2, wavelength 13, amplitude 1
torsional pitch 3.5, bridge 2, cap 1
honeycomb side 5, gap 1.2
auxetic cell 6.25, gap 1.5
crosshatch cell 6.25, slit 4.5

Before you cut

Slits must reach the panel edges, or the hinge does not flex. That constraint wins over your other numbers: --side and --cell are fitted to the panel width, so they are targets rather than guarantees, and the report tells you what they became.

The stock is 3mm Baltic birch plywood, and the defaults are aimed at it. The tuning numbers are still reasoned rather than tested, though: bridge width decides whether a hinge flexes or snaps, and the right value depends on your kerf as well as your stock. The coupons/ directory holds a bridge sweep for exactly that purpose — six otherwise identical 40 × 120mm coupons varying only --bridge, so you can cut one sheet and find out.

Files

living-hinge.js the CLI — run it from this directory
living-hinge-generator.js the geometry library it calls; must sit beside the CLI
living-hinge-guide.md · .html operating guide; the markdown is the source
NOTES.md how to reach this generator from a later session
preview.js draws previews/ from the cut files: the hairline thickened onto a gold panel
examples/ one cut-ready file per pattern, all eight, at 50 × 200mm
coupons/ bridge-sweep test coupons and cut instructions
index.html this page, generated from README.md; GitHub Pages serves it
previews/ display renderings of every pattern — not cut files

Released under CC0 1.0.