Changelog
All notable changes to MechPilot. The format follows Keep a Changelog; versions follow Semantic Versioning.
Unreleased
0.6.0 — 2026-10-22 — M7-AI The assistant
Added
- The optional assistant (Assistant tab, Ctrl+Shift+A, or
AI <text>on the command line): describe a part in a sentence and it answers with a proposal, shown as a ghost preview on the drawing (and a translucent body in 3D) that you accept or reject; every accepted proposal is one undo step. It never edits silently. Claude (default Claude Opus 5.5), OpenAI or Gemini with your own key, stored encrypted on your computer; the model runs in the main process only. - References: the 2D selection ("Use selection"), a part or a feature from the Features tab, a face (Alt+click) or a point (Shift+click) in the 3D viewer become chips in the chat, so you can point at something and ask for a change on it.
- Honest answers: the model reads the drawing through tools (read the model, measure, look up the library, check profiles and builds) and every claim shows its source: measured on this model, a standard and clause, a library entry, or "suggestion". When a request is not clear for the shape at hand it asks one short question with numbered options and a default instead of guessing.
- Proposals are validated before you see them: ids filled, commands dry-run, the document validated, unknown ids and impossible features refused with the reason sent back to the model.
- A scripted fake provider for tests (
MP_AI_FAKE=1), a real-key test that runs only when a key is present, and the demo script (docs/demo.md) that plays the whole walkthrough against the real model and takes the website's demo screenshots. - Website: a bold, AI-first landing page and the demo page (
/demo/); the app's 3D view behind an error boundary that explains a missing WebGL in plain words.
0.5.0 — 2026-10-22 — M4 3D parts
Added
- 3D parts built by replicad on opencascade.js (OpenCascade as WebAssembly, LGPL, in its own worker,
app/workers/kernel): a closed outline in the Model becomes a sketch on the XY, XZ or YZ plane (SKETCH), thenEXTRUDE,REVOLVE,HOLE(plain, ISO 273 clearance or tapped with the tap drill from the library),FILLET,CHAMFER,SHELL,MIRROR3D,PATTERN. Every feature is a command: undo, redo and the file format (version 5) cover the feature tree. - A 3D tab per part with a three.js viewer: orbit, view cube, grid, section plane on any principal plane, point-to-point measuring, and the part's volume, surface, bounding box and centre of mass.
- Features tab: the feature tree with status per feature (built, failed with the reason in plain words, skipped), reorder, suppress, edit every parameter and the part rebuilds; the body keeps building past a failed feature.
- STEP, STL and 3MF export; STEP import as a part's base body (kept inside the document).
- Library: ISO 273 clearance holes (fine, medium, coarse) and tap drills; common materials with density and source.
- Samples: a stepped shaft (half profile revolved, chamfered ends) and a sheet-metal cover (box, R5 corners, 1.5 mm shell, four M4 clearance holes).
0.4.0 — 2026-10-22 — M3 Parametric sketches
Added
- Sketch constraints solved by planegcs (FreeCAD's solver as WebAssembly, LGPL, in its own worker): coincident, point on line, horizontal, vertical, parallel, perpendicular, tangent, equal, symmetric, fixed, distance, point–line distance, angle, radius. Tools
CC,CPL,CH,CV,CPA,CPE,CT,CE,CS,CF,CD,CA,CR. - Driving dimensions: tick "Driving" on a dimension and the geometry follows its value.
- Inferred constraints while drawing lines: snapped end points become coincident, polar-tracked 0°/90° segments become horizontal or vertical, consecutive segments share their corner.
- Degrees-of-freedom colouring (green fully constrained, amber free), constraint glyphs on the drawing, the DOF count in the status bar, and conflicts or redundancies explained in plain words in the Checks tab with one-click removal.
- The solver's result joins the user's edit as one undo step; deleting an entity deletes its constraints (undo restores both). File format 4 with a migration.
- Sample: the mounting bracket outline is a constrained sketch driven by its 120 and 80 dimensions.
0.3.0 — 2026-10-22 — M2 Dimensions and sheets
Added
- Dimensions to ISO 129-1: linear (
DLI), aligned (DAL), angular (DAN), radius (DRA), diameter (DDI), ordinate (DOR). The value is measured from the geometry when drawn, never stored; decimal comma on ISO drawings, ⌀ and R prefixes, override text with<>. - Tolerances: deviations, symmetric, limits, and ISO 286 classes (H7, g6 …) whose deviations come from the library (
shared/fits.ts); the Properties panel edits them. - Notes with leaders (
LE), balloons (BAL), ISO 21920-1 surface texture symbols (SURF), ISO 1101 geometrical tolerance frames (TOL, symbols drawn as lines) and datums (DAT). - Dimension style (ISO 3098 3.5 mm lettering, 30° closed filled arrowheads of length h, 8 × line width extension overshoot, annotation scale) in the Properties panel.
- Sheets: A0 to A4 to ISO 5457 (frame, zones, centring and trimming marks), ISO 7200 title block with all 19 data fields, views at ISO 5455 scales; a Model / Sheet tab strip and a Sheets panel.
- Vector PDF export at true scale (pdf-lib, Helvetica, black, 0.13 mm minimum line width), one page per sheet, with ISO line widths printed as they are whatever the view scale.
- Library data verified on the standards' own text:
sheets/iso-5457,title-blocks/iso-7200,scales/iso-5455,lettering/iso-3098,dimensioning/iso-129-1,fits/iso-286(IT01–IT18, fundamental deviations, Δ),gdt/iso-1101,surface/iso-21920-1;docs/standards.md. - File format 3 (annotations, dimension style, sheets) with a migration from format 2.
- Annotations are exploded into lines, arcs and text on DXF export.
- Sample: the mounting bracket now carries dimensions with ±, deviations and an H7 fit, a surface symbol, flatness and position frames, datums, a note, a balloon and an A3 sheet.
0.2.0 — 2026-10-22 — M1 2D drafting
Added
- Entities: polyline (with arc segments as DXF bulges; rectangle as a closed polyline), ellipse, spline (B-spline through fit points), text. File format 2 with a migration from format 1.
- Drawing tools by mouse or command line:
Lline (Ccloses,Uundoes a segment),PLpolyline,RECrectangle,Ccircle (radius orDdiameter),Athree-point arc,ELellipse,SPLspline,Ttext (H=sets the height). - Object snaps with markers: end, mid, centre, quadrant, intersection, perpendicular, tangent, nearest (
OSNAPtoggles them), and polar tracking every 15°. - Edit tools:
Mmove,COcopy,ROrotate,SCscale,MImirror,Ooffset,TRtrim,EXextend,Ffillet (R=),CHAchamfer (D=),ARarray (rectangular or polar). Window (left to right) and crossing (right to left) selection; hover highlight; grips. - ISO 128-2 dashed, long-dashed dotted and double-dotted line types render with the Table 4 element lengths (verified against the standard's text; see
docs/to-verify.md). - Spatial index for picking, snapping and view culling, with a 100,000-entity budget test.
- Autosave every 20 s while the drawing is dirty, and a recovery banner after a crash.
- DXF import and export (R12 and 2000 subsets,
docs/dxf.md): File > Import DXF, Export DXF. Round-trip tests, blocks expanded on import, units converted, unsupported entities reported. ZWzooms to the selection;SAselects all.
0.1.0 — 2026-10-22 — M0 Scaffold
Added
- The project:
CLAUDE.md,docs/roadmap.md(M0 to M8 as checklists),docs/decisions.md,docs/to-verify.md,docs/file-format.md,docs/progress.md. - Open source: Apache-2.0
LICENSEandNOTICE,CONTRIBUTING.md(DCO sign-off),CODE_OF_CONDUCT.md,SECURITY.md, issue and pull-request templates, "contribute in 30 minutes" in the README.THIRD_PARTY_LICENSES.mdis generated before every build. - CI: typecheck, unit tests, licence check (fails on GPL or AGPL), library check, build, site build with an up-to-date check, end-to-end tests.
- The app (Electron + electron-vite, React, Zustand, TypeScript strict) with its main layout: top bar with in-app menus, tool palette, Canvas 2D drawing canvas with grid, pan and zoom, properties and layers panels, command line, status bar. Dark and light interface, dark or white canvas, English and Italian.
- The document model and file format v1 (
.mechpilot.json): millimetres in double precision, stable ordering, migrations, plain-language errors. - The command layer with do/undo for every edit, including opening a document.
- Line and circle drawing by mouse or command line (
L,C, absolute and@relativepoints), selection, delete, properties editing, layer management with ISO 128-2 line types and widths. - Worker harness with a typed protocol and a smoke worker (the solver and kernel plug in later).
- Library: ISO 128-2 line types and the line-width series, with sources, validated by
scripts/check-library.mjs. - Sample project: the mounting bracket (outline, holes, centre lines).
- Website skeleton (
site/): landing page and "For companies" in English and Italian, sitemap, robots, security headers.