New Project

About Woodwerx

Woodwerx is the compiler behind Plank & Pattern. You describe a piece of furniture in a short text file; it works out every part, every joint and every cut, and hands back solid models, a cut list and instructions a CNC machine can read.

What goes in

A Woodwerx design is a text file in a small language called KDL. It names the measurements that matter (a table's height, a leg's thickness, how far a drawer opens) and says how the parts relate: this rail meets that leg with a mortise and tenon, these four feet are the same, this shelf sits a third of the way up. Change one number and everything that depends on it follows.

Nothing in the file is a drawing. It says what the piece is, and the compiler works out what that looks like.

What comes out

One idea underneath

Every cut, whether a groove, a mortise, a tenon cheek, a chamfer or the pins of a dovetail, is the same thing: a path on a face, a tilt, a heading and a depth. A joint is a recipe that works out those numbers for each of the two parts it joins. That is why a new joint is a small addition rather than a new piece of geometry code, and why the machine instructions and the model cannot disagree.

How it gets there

The compiler works in seven steps, each checking what it can before the next begins.

  1. Parse. Read the file and keep track of where every line is, so later messages can point back to it.
  2. Parameters. Work out every named number, in dependency order, and catch circular or missing ones.
  3. Expand. Stamp out the repeated parts and reusable components, and place each one in the piece.
  4. Bind and check. Match every joint to the faces it joins and confirm it can work before any geometry is built.
  5. Synthesise joinery. Turn each joint into the matching cuts on both parts, with clearance on the receiving side.
  6. Build solids. Cut every part from its stock, in parallel.
  7. Lower. Produce the cut list, drawings and toolpaths from the finished solids.

In the browser, and everywhere else

The same compiler runs on a server, on a laptop and inside the page you are reading, and produces identical results in each, so a design can be explored in the browser and built in the shop from the same file.

Go further

Settings

Region

A region picks sensible defaults; change any of these separately.

Units

In inches, type lengths the way you say them: 34 1/2, 3/4", 1'-2" or 12.7mm. A length that can't be read is flagged, never rounded to something else.

Paper
Date order
Clock