# Woodwerx design language

Woodwerx designs are written in KDL: a `project` of parameters, materials, components and an assembly, which the compiler turns into solids, drawings, a cut list and a fabrication pack. This is the reference for that language. It is generated from the compiler's own tables, the example library and the language reference, and every code sample on it has been parsed or compiled when it was built.

Three facts first: dimensions are floats (`19.0`, never `19`); a quoted string in a value position is an expression, a bare word is a name; and Z is negative going down from a part's top face.

Plain-text versions for tools and agents: every page is available as Markdown at `/technology/language/<page>.md`, and the whole reference as one file at `/llms.txt` (also `/technology/language.md`).


## Start here

- [Quickstart](start.md): *A minimal valid `.kdl` skeleton*
- [Task index](tasks.md): *"How do I..." jump-in points, each pointing at the file with the real syntax*
- [Node router](nodes.md): *Which file documents which node*

## Language reference

- [Banding & Stringing](banding-and-stringing.md): Covers `banding`, `stringing`, `lay`, `pattern`.
- [Bevels & Rabbets](bevel-and-rabbet.md): Covers `bevel`, `rabbet`, `moulding`, `trim`.
- [Components & Stock](components-and-stock.md): Covers `component`, `stock`, `role`, `grain`, `mark`, `normal`, `tilt`, `heading`, and more.
- [Curved Members](curved-members.md): Covers `bend`, `arc`, `spline`.
- [Cut-Path Outlines](cut-paths.md): Covers `cut_path`, `path`, `keep`, `line`, `arc`, `polyline`, `point`, `kerf`.
- [Edge & Face Cuts](edge-and-face-cuts.md): Covers `dado`, `groove`, `rabbet`, `chamfer`, `roundover`, `moulding`, `taper`, `hole`, and more.
- [Grain Axis](grain-axis.md): Covers `stock`, `along_x`, `along_y`, `along_z`.
- [Hardware Mounting](hardware-mounting.md): Covers `hardware`, `hardware_mount`, `hardware_use`, `distribute`.
- [Joinery Contract](joinery-contract.md): Covers `joinery`, `join`, `male`, `female`, `joint`, `clearance`, `fit`, `butt`, and more.
- [Fastener Joints](joinery-fasteners.md): Covers `dowel`, `pocket_hole`, `biscuit`, `domino`, `edge_glue`, `screw_type`, `spacing`, `count`, and more.
- [Frame Joinery](joinery-frames.md): Covers `miter`, `stile_and_rail`, `mitred_moulding`, `angle`, `groove_width`, `groove_depth`, `stub_tenon_length`, `profile`.
- [Laps, Bridles & Dovetails](joinery-laps-and-boxes.md): Covers `half_lap`, `cross_lap`, `bridle`, `box_joint`, `dovetail_through`, `dovetail_half_blind`, `sliding_dovetail`, `depth_ratio`, and more.
- [Tenon Joinery](joinery-tenons.md): Covers `mortise_and_tenon`, `round_tenon`, `tenon_thickness`, `tenon_width`, `tenon_length`, `haunch`, `centering`, `through`, and more.
- [Loose Inserts](loose-inserts.md): Covers `dowel`, `biscuit`, `domino`.
- [Materials & Hardware](materials-and-hardware.md): Covers `materials`, `material`, `type`, `color`, `finish`, `hardware`, `hardware_use`, `hardware_mount`, and more.
- [Model Metrics](model-metrics.md): Covers `volume`, `no_join`, `a`, `b`, `reason`.
- [Non-Wood Materials](non-wood-materials.md): Covers `stock`, `ring`, `constraint`, `to`, `substance`, `tempered`.
- [Oblique & Skewed Joints](oblique-and-skewed-joints.md): Covers `cross_lap`, `tilt`, `heading`.
- [Parts & Assemblies](parts-and-assemblies.md): Covers `assembly`, `part`, `instance`, `by`, `pos`, `rot`, `mirror`, `repeat`, and more.
- [Paths & Splines](paths-and-splines.md): Covers `path`, `cut_path`, `spline`, `circle`, `line`, `arc`, `polyline`.
- [Plans & Interfaces](plans-and-interfaces.md): Covers `plan`, `site`, `room`, `run`, `place`, `fill`, `interface`, `wall`, and more.
- [Project & Params](project-and-params.md): Covers `project`, `units`, `meta`, `params`, `preset`, `label`, `category`, `unit_display`, and more.
- [Reuse & Collections](reuse-and-collections.md): Covers `import`, `from`, `export`, `collection`, `extends`, `choice`, `slots`, `style`, and more.
- [Round Stock & Sections](round-stock-sections.md): Covers `shape`, `rect`, `round`, `section`, `interp`, `circle`, `samples`, `axis`, and more.
- [Sliding Sleeve](sliding-sleeve.md): Covers `sliding_sleeve`.
- [Speaker Analysis](speaker-analysis.md): Covers `driver`, `analysis`, `ac_sealed_fc`, `ac_sealed_qtc`, `ac_port_length`, `ac_helmholtz_fb`, `fs`, `qts`, and more.
- [Style & Finish Rule](style-finish-rule.md): Covers `finish`, `one_of`.
- [Tenon Tips & Coped Rails](tenon-tips-wedges-and-coped-rails.md): Covers `tip`, `wedge`, `stile_and_rail`.
- [Tongue & Groove](tongue-and-groove.md): Covers `tongue_and_groove`.
- [Travel](travel.md): Covers `travel`, `body`, `pivot`.
- [Turning & Sections](turning-and-sections.md): Covers `stock`, `section`, `turn`, `profile`.
- [Veneer & Laminate](veneer-and-laminate.md): Covers `veneer`, `match`.

## Generated indexes

- [Vocabulary](vocabulary.md): Every node, joinery kind, feature, anchor, face, grain and expression function the language accepts.
- [Names](names.md): A keyword index: every name with its kind, the page that documents it and how often examples use it.
- [Diagnostics](diagnostics.md): Every ww:: diagnostic code with its message and help text.
- [Examples](examples.md): Complete designs, three in full, and the list of the whole example library.
