Contact
Draftv0.5.0 · beta

Draft

A 2D drafting tool with the feel of a professional CAD command line, built to run properly on Linux, macOS and Windows alike — and priced for a person rather than a firm.

Draft is a drafting application. You type L, pick two points, and get a line — the same way you would in any established CAD package, with the same command line, the same object snaps, the same F-key toggles and the same grips.

What is different is where it runs and what it costs. The established packages ship either no Linux build at all or a feature-reduced one, and they are priced for firms rather than for individuals. Draft is full-featured on all three platforms at an individual-reasonable price, and that gap is the entire product thesis.

The familiarity principle#

Drafters arrive with existing muscle memory, and the goal is that an experienced one is productive within minutes without being taught. That does not mean Draft reimplements forty years of accumulated CAD convention. It sorts inherited behaviour into three tiers.

Tier 1 — inherit. The interaction grammar: command line with aliases, Space-as-Enter, keyword prompts, OSNAP, ortho and polar tracking, grips, window versus crossing selection, noun-verb and verb-noun order, the F-key toggles. This is where the muscle memory actually lives, it costs little to match, and getting it wrong is what makes a tool feel foreign.

Tier 2 — cover. The commands people actually reach for. Breadth beats depth: a drafter blocked by a missing HATCH or DIMLINEAR stops evaluating, but almost nobody misses the long tail. Where a command has five modes and two are used in practice, Draft ships the two.

Tier 3 — drop or modernize. Forty years of backwards compatibility left a lot of scaffolding that exists only because removing it would break old drawings. Draft has no old drawings.

What Draft deliberately does not inherit#

LegacyWhat Draft does instead
.pgp / .cuix customizationVS Code-style JSON: settings.json, keybindings.json
Cryptic sysvars as the primary interface (PDMODE, LTSCALE, MIRRTEXT…)Named, documented settings in JSON. The classic names still work as command-line aliases, so typing LTSCALE still gets you there
PDMODE numeric shape codesNamed point styles: dot, cross, x, circle-cross, square
MIRRTEXT as a global toggleReadable-text-on-mirror is simply the behaviour; literal glyph mirroring is a per-command option
Classic TRIM/EXTEND (pick boundaries first)Quick mode only — every visible entity is an implicit boundary
UNDO's Mark/Back/Control/Auto option setU and UNDO are one single-step command; multi-step rollback lives in an undo history panel
Separate TEXT and MTEXTOne text command. Single-line is just text with no wrap width
.lin / .pat as the internal formatInternal definitions are Draft's own; .lin and .pat import so firms can bring office standards

The test applied to every divergence: would a competent drafter, on encountering this, be annoyed for ten seconds and then prefer it — or be confused and reach for the manual? The first is fine. The second is not.

What is in the box#

  • Drawing — line, polyline, circle, arc, rectangle, ellipse, point, spline, construction lines, polygon, divide and measure.
  • Modifying — erase, move, copy, rotate, scale, mirror, stretch, offset, trim, extend, fillet, chamfer, array, break, join, lengthen, explode, match properties, and full grip editing.
  • Precision — a constraint pipeline of grid snap → ortho/polar → object snap, with ten-plus snap types ranked in tiers so a Nearest snap can never swallow an Endpoint.
  • Structure — layers, linetypes, lineweights, blocks with attributes, external references, hatching, groups and WBLOCK.
  • Annotation — text, dimension styles, the full dimension family (linear, aligned, angular, radial, diameter, ordinate, continued, baseline), leaders, tables and annotative scaling.
  • Sheets — model space plus layouts with viewports, page setups, plot styles, and plotting to PDF at true paper size.
  • Three dimensions — a 3D pane, UCS, named views, visual styles, solid primitives, profiles-to-solids and booleans.
  • Interoperability — DXF read and write, DWG read through an external converter, SVG import, PDF plot output.

Platform and technology#

Draft is a desktop application built on Tauri v2 with a React 19 + TypeScript frontend. All three desktop platforms are first-class — single-platform quality is precisely what Draft competes against — and Linux is the primary development and test target because it is the one nobody else serves.

2D geometry renders to Canvas 2D across three stacked layers, with an R-tree for culling. The 3D pane renders on three.js. The geometry kernel — the part that does intersections, offset, trim and fillet — is Draft's own, written in plain TypeScript with no DOM dependency, because that is where CAD clones die and it has to be unit-testable in isolation.

Draft is under active development and is not yet generally available. Every page marks what is shipped and what is designed, and The roadmap is the full list.

Where to go next#