Files
cadcraft/docs/gaps.md
T
2026-10-11 11:23:45 -04:00

18 KiB
Raw Blame History

Where CADCraft falls short of AutoCAD

Last reviewed: 2026-10-10 · Last updated: 2026-10-11 · Change: minor (SPLINE, MTEXT and MLEADER prompt options landed, #408: top-10 row 5, F1 and F10 narrowed) · Target: Autodesk AutoCAD 2027

Every known shortfall, one row each, ranked within each section by user impact. This is the work list: agents pick from here (top of a section first), and remove or update a row in the same PR that closes it. Numbers and weights live in target-app-parity.md; hours are Opus 5.5 agent-hours, calibrated as explained there. "Est." means a judgement from the cited evidence. Rows marked [alpha blocker] are what fails the alpha gate; do them first.

Top 10 across everything

# Gap Why it ranks here Est. Doc
1 [alpha blocker] Saving drops whatever we don't model (Unknown entities, IMAGE, layer states, block descriptions, true colours, MULTILEADER written as LEADER+MTEXT, groups, named views/UCS, foreign xdata) Opening a colleague's DWG and saving it silently deletes content: the one thing a CAD user can't forgive 15–25 file formats
2 [alpha blocker] No real-file test corpus and no check in AutoCAD All 36 file tests are synthetic; nobody has verified a CADCraft DWG/DXF opens cleanly in AutoCAD 10–15 + human file formats
3 Tracking leftovers (object snap tracking, Extension, Parallel and Apparent Intersection landed, #379): polar angles relative to the last segment, PolarSnap, temporary tracking point Small now; ranks lower at the next review 3–5 ui
4 No code pages when reading pre-2007 files (saving DWG/DXF at 2000–2018 and binary DXF landed, #421) Pre-2007 CJK/Cyrillic files are garbled 3–5 file formats
5 [alpha blocker] Stubbed prompt options left in PEDIT Edit vertex, SPLINEDIT and MTEXT columns Scripts and muscle memory hit "not available yet" (the most-used commands are done) 3–6 features
6 Ellipse and spline geometry is tessellated (intersections, offsets, closest points; polyline offset ignores bulges) Coordinates are subtly wrong; offsets of ellipses come out as polylines 30–50 geometry
7 [alpha blocker] No xrefs, block editor, dynamic blocks or groups Most production drawings use them 80–120 features
8 No autosave in the web build (the desktop app has SAVETIME autosave, Drawing Recovery, AUDIT and RECOVER since #406) Browser users lose unsaved work when the tab or the browser goes down 3–5 features
9 Dynamic input lacks grip input; no TK; grip options ignored (FROM, M2P/MTP, point filters, * and <a landed, #392) Precision entry at the cursor is how AutoCAD is taught today 12–20 ui
10 No CI runs the Rust tests on pull requests (cargo fmt on main is fixed) open PRs land without a gate; regressions go unseen 2–3 stability

Features

# Gap Evidence User impact Est.
F1 [alpha blocker] Prompt options print "not available yet": PEDIT Edit vertex Break/Regen/Tangent, some SPLINEDIT options; MTEXT Dynamic/Static columns (no column model). SPLINE, MTEXT and MLEADER options done (#408): closed splines keep but ignore a fit tolerance, SPLINE Object fits the polyline's vertices (no spline frame is kept) (TRIM/EXTEND, PLINE arc mode and Length, XLINE done (#397); OFFSET, ROTATE and FILLET options done earlier) modify2.rs:594,783,806, cmd/mtext_opts.rs Medium: the most-used commands are done 3–6
F2 [alpha blocker] No xrefs (XATTACH, XREF palette, REFEDIT, BIND, XCLIP, overlay, paths); DXF xref blocks read with an empty path dxf_read.rs:923 High: multi-file projects 30–45
F3 [alpha blocker] (block editor and REFEDIT; dynamic-block authoring is beta) No block editor (BEDIT) or dynamic blocks (parameters, actions, visibility, lookup); dynamic blocks from other files lose their behaviour issue #185 offers help High: standard libraries are dynamic 50–75
F4 Autosave leftovers: no autosave in the web build (browser storage); autosave files are DXF, not DWG; no AUDITCTL .adt log and no separate RECOVER mode in the file readers (SAVETIME, Drawing Recovery, AUDIT and RECOVER landed with #406) engine/src/autosave.rs, engine/src/audit.rs Low-medium (web users) 3–5
F5 Arrays are not associative: no ARRAYEDIT; ARRAY/ARRAYRECT/ARRAYPOLAR edit the array in an option loop, then create plain copies (ASsociative, Levels, polar ROWs and grip editing print "not available yet") cmd/array.rs Medium-high 8–12
F6 FILLET/CHAMFER/JOIN/LENGTHEN/EXTEND don't handle ellipses and splines; FILLET Trim/Multiple and polyline segment pairs; CHAMFER Angle/Method geometry-parity Medium 10–15
F7 Dimensions: no DIMSTYLE manager dialog; 43 of ~80 DIMSTYLE variables (DIMTOFL, DIMATFIT, DIMTMOVE, DIMLTYPE, DIMLWD, DIMFXL, DIMTOLJ, DIMALTU …); no smart DIM; no DIMJOGGED, DIMJOGLINE, DIMBREAK, oblique DIMEDIT, inspection; QDIM continuous only (SETVAR DIM* now become style overrides, #129) doc/src/tables.rs:223-266, annotate.rs:64,364 High for detailers 25–35
F8 TOLERANCE leftovers (feature control frames landed, #420: model, our own symbol drawing, DXF, command-line prompts, explode, grips): no Geometric Tolerance dialog, no LEADER/QLEADER tolerance annotation, no in-place editing of a frame's contents cmd/tolerance.rs Low-medium (mechanical) 2–4
F9 MTEXT editor is a dialog box, not in place; no columns, bullets, numbering, tabs, indents; no fields (FIELD, UPDATEFIELD); no spell check (SPELL) ui-egui/dialogs.rs:188-240 Medium-high 30–45
F10 MLEADER: no MLEADEREDIT/ALIGN/COLLECT; MLEADERSTYLE has 5 fields (block content and spline/no-leader types are per command, not in the style; block content has no attributes) annotate.rs, cmd/mleader_content.rs, tables.rs:417 Medium 8–12
F11 Tables: no cell styles, formulas, data links, table breaking cmd/table.rs Medium 10–15
F12 Annotative scaling: the flag is stored, nothing scales; no scale list, no "Annotative Object Scale" commands 4 uncovered menu items Medium-high in layouts 10–15
F13 Hatch: 23 patterns (AutoCAD ~85; ours must stay original); gradients render as a flat colour; associativity not updated when the boundary moves; origin always 0,0; island style always normal; no gap tolerance, separate hatches, hatch dialog, MPolygon doc/src/library.rs, render/lib.rs:430-437, cmd/hatch.rs:198,201 Medium 15–25
F14 [alpha blocker] No plot preview, plotter devices, PUBLISH/batch plot; Print opens no plot dialog (#160, PR #200). Plot styles (CTB and STB, plot-styles.md) apply since #410; their end/join/fill styles aren't applied and binary .ctb/.stb files can't be read palettes.rs:666 High for sheet output 15–25
F15 Viewports: no polygonal, object or clipped viewports; no viewport scale control in the UI menu items uncovered Medium 6–10
F16 Groups: no group bounding box or single grip when a group is selected (GROUPDISPLAYMODE), copying a whole group does not make a new group, no Object Grouping dialog (GROUP, GROUPEDIT, UNGROUP, -GROUP, PICKSTYLE group selection and the DXF/DWG round trip landed, #417); PICKSTYLE's associative-hatch bit is stored but unused cmd/groups.rs Low 2–4
F17 Attributes: BATTMAN lists only; no ATTSYNC, EATTEXT, global ATTEDIT blocks.rs:300 Medium 6–10
F18 Layer bugs: edits change geometry on locked layers (#87, PR #196); delete/purge removes layers used by blocks (#72, PR #189); rename misses paper space and blocks (#75, PR #191); linetype rename breaks assignments (#74, PR #195); rejected freeze changes colour (#71, PR #188) issues High (correctness) 3–5 (PRs open)
F19 MATCHPROP has no interactive picker or settings dialog; DRAWORDER front/back only; OVERKILL exact duplicates only props.rs:333, modify.rs:1258 Medium 5–8
F20 OPTIONS/Preferences dialog missing (#23) (UNITS has a dialog since #38) — Medium 6–10
F21 MLINE is two polylines (no MLINE entity, MLSTYLE); REGION makes polylines (no region entity); HELIX is a polyline draw2.rs:116,123, hatch.rs:267 Medium-low 8–12
F22 Inquiry: MASSPROP approximate; COUNT counts model-space inserts only; no QuickCalc palette (CAL is an evaluator); no DWG Compare utility.rs:203,310-352, inquiry.rs:305 Low-medium 15–25
F23 No Sheet Set Manager, eTransmit, Share, Traces, Markup Import, Activity Insights menu items uncovered Low-medium (team workflows) 40–70
F24 No 3D: UCS, 3D views, orbit, solids, surfaces, meshes, sections, visual styles, materials, lights, rendering (150 menu items) parity-checklist Medium (3D users) 300–450
F25 Constraint solver: no DOF report, Smooth not G2, no ellipse/spline/block geometry, no inference while drawing; DCANGULAR can succeed unsatisfied (#73, PR #190) geometry-parity Low-medium 20–30

UI/UX

Detail and evidence: ui-parity.md.

# Gap User impact Est.
U1 Tracking leftovers: polar angles relative to the last segment (POLARMODE 1), PolarSnap, Extension from ellipse and spline ends, the tracking options in Drafting Settings (object snap tracking, Extension, Parallel and Apparent Intersection landed in #379; the temporary tracking point TT in #441) Medium 2–4
U2 Dynamic input: grip dimensional input, lock icons, DYNPROMPT options menu (pointer boxes with Tab and relative entry landed in #60) Medium 3–5
U4 Tab snap cycling offers the closest snap of each mode, not every candidate. Typed snap overrides (END, MID … NON), the Shift/Ctrl+right-click snap menu and Tab cycling landed (#393), the menu's Temporary track point in #441 Low 1
U5 Hot-grip options (Base point, Copy, Undo, Reference) are shown but ignored; multiple hot grips; multifunctional grip menus (Add/Remove Vertex, Convert to Arc) Medium-high 6–10
U6 Selection: lasso; selection cycling (a list of overlapping objects, SELECTIONCYCLING); the CLass keyword; isolation saved with the drawing (OBJECTISOLATIONMODE 1) and the status-bar isolate button. Press-drag windows (#63), the W, C, F, WP and CP keywords (#226), BOX, AUto, SIngle, Multiple, Group, Add, Remove and Undo, SELECTSIMILAR, and ISOLATEOBJECTS/HIDEOBJECTS/UNISOLATEOBJECTS (#428) landed Medium 3–5
U7 Right-click context menus (canvas, selection, command, command line, palettes, tabs) Medium-high 6–10
U8 Snaps missing on some objects: MID on circles/ellipses/splines; NOD on dimension points; INS on ATTDEF/MLEADER; TAN on ellipses/splines; GCEN on splines Medium 4–6
U9 Polar: additional angles, relative to last segment, PolarSnap; isometric snap/grid and ISODRAFT (dead toggle) Medium 4–6
U10 UNDO Mark/Back/BEgin/End/Auto; SETVAR coverage (~60 of ~1,000 variables) Medium 6–10
U11 Zoom Realtime and Dynamic, ZOOMFACTOR; named views (VIEW); tiled model viewports Medium 6–8
U12 Workspaces, navigation bar, CUI customisation, alias editor, ViewCube drag (#7) Low-medium 15–25
U13 Window controls misaligned on macOS (#161); .dxf from Finder fails to open (#158) Medium 2–4

File formats

Detail: file-format-parity.md.

# Gap User impact Est.
FF1 [alpha blocker] Round-trip what we don't model: keep Unknown entities and objects, foreign xdata, extension dictionaries; write IMAGE (with IMAGEDEF), VIEW/UCS/VPORT tables, groups, layer states, block descriptions, true colours (#201, #204, #208, #209, #213, #223); WIPEOUT and gradients done (#147, #162) High 12–20
FF2 [alpha blocker] Native MULTILEADER objects (read and write) High 6–10
FF3 Save-version leftovers (DXF/DWG 2000–2018, binary DXF, SAVEAS version/binary and the default save version landed, #421): no R14 DWG or R12 DXF output; the Save dialog can't pick the version per file (the file picker doesn't report the chosen type; File > Default Save Format sets it); no command-line SAVEAS format prompt Low 2–4
FF4 Code pages ($DWGCODEPAGE, ANSI_932/936/949/950/125x) when reading pre-2007 files Medium-high (Asia, Eastern Europe) 3–5
FF5 [alpha blocker] Real-file corpus (storytold/cadcraft-corpus), open → save → reopen tests, black-box check in AutoCAD High 10–15 + human
FF6 [alpha blocker] DWG throughput: a 10 MB DWG took ~2 min to fail (#57) High for real projects 6–10
FF7 *D dimension blocks duplicate on re-save; handles regenerate every save Medium 3–5
FF8 SHX fonts (shape and big fonts) not read Medium-high (text metrics differ) 8–12
FF9 Templates (DWT), user .lin/.pat files, .ctb/.stb, .pc3, .pgp Medium 20–30
FF10 PDF: text as real fonts, layers (OCG), multi-sheet; PDF import and underlays; raster image attach Medium 30–50
FF11 DWF/DWFx, DGN, WMF, EPS, ACIS/STL and other exchange formats Low-medium 50–100
FF12 DWG in the web build Medium 6–10
FF13 R12 binary DXF, pre-R13 DWG Low 10–20

Hardware

Detail: hardware-parity.md.

# Gap Est.
H1 3Dconnexion SpaceMouse (needs the device and 3D views) 6–10 + human
H2 Multi-monitor: floating palettes on other screens, per-monitor DPI (PR #110 for Windows 11 DPI) 4–6
H3 Plotters and system printers (PC3 devices) beyond PDF files 6–10
H4 Pen tablets / digitizer (TABLET) 3–5 + human
H5 Screen magnifier tracking (#39, PR #187) 1–2

Localization

Detail: localization-parity.md.

# Gap Est.
L1 Catalog covers the UI (936 rows, #36) but not engine diagnostics, CLI/MCP replies or command history 4–6
L2 AutoCAD for Mac's 7 other languages (zh-Hans, es, fr, ja, de, ko, it) plus pt, hi, ar, id, vi from the standard's list 40–60 + native review
L3 Complex-script shaping for Devanagari and other Indic scripts in drawing text; RTL (mirrored) UI. Arabic-script shaping and bidi in drawing text landed (#287) 20–30
L4 IME fixes on every platform (PRs #110–#119); vertical text styles 6–10

Stability

# Gap Evidence Est.
S1 No CI runs cargo xtask ci on pull requests (only packaging lint and release builds) .github/workflows/ 2–3
S2 cargo fmt --check fails on main fixed on main (8fceaaf) — 0
S3 47 open PRs, many community bug fixes awaiting review gh pr list 10–20
S4 Open correctness issues: extents union far-apart geometry (#166), lines not visible mid-command (#44, PR #56), browser save/plot deliver nothing (#133, #134), closing a tab switches drawings (#76, PR #192) issues 6–10
S5 No smoke test of every command through the UI (PR #42 proposes one) — 6–10
S6 No property-based or fuzz tests for geometry; hostile-input tests cover parsing only geometry-parity 4–6

Platforms

# Gap Est.
P1 Web build: File > Open does nothing (#55, PR #199), saves don't download (#133, PR #193), plot shows raw PDF bytes (#134), no DWG 6–10
P2 Windows and Linux get little runtime testing; Linux Mint mouse delay (#25); Windows magnifier (#39) 6–10
P3 macOS file associations: opening .dxf from Finder fails (#158) 1–2

Ecosystem and automation

# Gap Est.
E1 AutoLISP interpreter (safe subset first: defun, command, entget/entmod, selection sets, getpoint …), APPLOAD, acad.lsp startup 60–100
E2 SCRIPT command reading .scr files (scripts run today through CLI/MCP/control only) 1–2
E3 Express Tools equivalents (TXT2MTXT, BREAKLINE, BURST, NCOPY exists, SUPERHATCH, Move/Copy/Rotate) 30–50
E4 Plug-in API (owner decision: Rust/WASM plug-ins rather than ObjectARX/.NET) 30–50
E5 CUI customisation and alias (.pgp) editor 15–25

AI features

# Gap Est.
A1 Smart Blocks equivalents (placement suggestions, replace, detect and convert, search), using local open models 25–50 + model licensing
A2 An in-app assistant (AutoCAD has Autodesk Assistant); CADCraft's MCP server already lets any agent drive it 10–20
A3 Markup Assist (import markups from PDFs/images) 10–20

Revision history

Date Change Summary
2026-10-11 minor SPLINE Knots/Tangency/toLerance/Object, MTEXT Height/Justify/Line spacing/Rotation/Style/Width/Columns, MLEADER spline and no-leader types and block content landed (#408): top-10 row 5, F1 and F10 narrowed
2026-10-11 minor Object snap tracking, Extension, Parallel and true Apparent Intersection landed (#379): top-10 row 3 and U1 narrowed to the leftovers
2026-10-10 minor Merged main: closed or narrowed rows for the Ukrainian catalog, UNITS dialog, shortcut display, dynamic input pointer boxes, press-drag windows, SETVAR DIM*, WIPEOUT and gradients, fmt
2026-10-10 minor Alpha blockers marked (rows failing the core-workflow gate)
2026-10-10 major First gaps list: ranked top 10 and every known shortfall by dimension, with evidence and estimates