Files
cadcraft/ROADMAP.md
T
vangel76andClaude Sonnet 5.5 0e949bffe1 Merge upstream/main into docs/gaps-audit-2026-10-12
Resolve the gaps and parity-doc conflicts: keep this branch's re-audit
rows and history, fold in upstream's newer QSAVE and justification
changes, and recount the file tests (88) and catalogs (16).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 11:18:17 +01:00

14 KiB
Raw Blame History

CADCraft roadmap

Stage: pre-alpha · next: alpha, ~2 points (38% → 40% ready for real work) and ~125–190 Opus 5.5 hours away (the four failing core workflows of the alpha gate)

Last reviewed: 2026-10-24 · Last updated: 2026-10-24 · Change: minor (re-audit against main 41d9b5e95: language table, CI gate, open-PR count; previously: progress log: proxy objects keep their class through a save, #1812; previously minor: HATCHEDIT boundary add/remove progress) · Target: Autodesk AutoCAD 2027

CADCraft targets full parity with AutoCAD (2D drafting first, then annotation, layouts and plotting, DWG, parametrics and 3D), plus what AutoCAD doesn't have: agent control over MCP, a scriptable CLI, a web build, Linux and FreeBSD builds, and a free licence.

Why pre-alpha: four of AutoCAD's five core workflows fail the alpha gate. Precise drafting still has approximate ellipse and spline intersections and a few stubbed prompt options (object snap tracking, TRIM/EXTEND/OFFSET options and typed snap overrides have landed); dynamic blocks can't be authored and xrefs can't be edited in place or clipped (the Block Editor, REFEDIT and dynamic block editing have landed); plots go only to PDF, PNG and SVG files (plot styles and the Plot dialog have landed); and a DWG saved by CADCraft drops what acadrust doesn't model and has never been checked in AutoCAD. Dimensioning passes. Ready for real work (≈ 38%) is also under the ~40% alpha bar. Beta is ≈ 600–930 h away.

Headline numbers

Number Value Kind
Feature breadth (AutoCAD for Mac menu items with a live command) 50% (245 / 491; 2D menus only ≈ 65%) measured (parity-checklist.md + UI-only commands)
Ready for real work ≈ 38% estimated (target-app-parity.md)
Mainstream practitioner (2D drafter) ≈ 28% (lower than the full number: file exchange, stability and interaction discounts multiply) estimated (target-app-parity.md)
Essentials user ≈ 46% estimated (target-app-parity.md)
Remaining to alpha ≈ 125–190 h (the gate rows) estimated
Remaining to beta ≈ 600–930 h (≈ 150–250 h elapsed with 4–6 agents) estimated
Remaining to full parity ≈ 1,300–2,100 h (≈ 330–550 h elapsed) estimated

Readiness by audience

Audience Ready % Opus 5.5 agent wall-clock hours to ~95% Work that dominates
Full target (ready for real work) ≈ 38% ≈ 1,150–1,850 h (≈ 70% parallelises across 4–6 agents: ≈ 300–480 h elapsed) 3D kernel (300–450 h), DWG/DXF and other formats, AutoLISP and ecosystem, blocks/xrefs/dynamic blocks, localization
Mainstream practitioner (2D drafter) ≈ 28% ≈ 570–880 h (≈ 70% parallelises: ≈ 150–240 h elapsed) lossless DWG exchange and a real-file corpus, precision input (tracking, dynamic input), 2D geometry precision, blocks/xrefs, annotation depth, stability backlog
Essentials user ≈ 46% ≈ 140–225 h (≈ 50% parallelises across 3 agents: ≈ 60–110 h elapsed) stubbed options in basic draw/modify commands, opening DWGs people send, launch/stability fixes, plot dialog, context menus and dynamic input

Hours are subsets (essentials ⊂ mainstream ⊂ full) and use the calibration in target-app-parity.md: ≈ 25 commands per agent-hour at presence quality in the first build (≈ 11.5 agent-hours), 0.3–0.7 h per option or bug fix (≈ 60 such fixes on 2026-10-10), 2–5 h per moderate feature, 15–100 h per subsystem.

Hours are Opus 5.5 agent wall-clock hours, calibrated on this repo's own build: the first version (51k lines, 290 commands) took ≈ 11.5 agent-hours at presence quality, while depth work runs at 0.3–0.7 h per option or bug fix (≈ 60 such fixes landed on 2026-10-10). Details: target-app-parity.md.

By dimension

Dimension Parity Remaining (h) Doc
Features (depth, weighted by use) 41% 735–1,115 target-app-parity.md
UI/UX fidelity 43% 100–160 ui-parity.md
File formats 30% 170–280 file-format-parity.md
Hardware 45% 15–25 hardware-parity.md
Localization 5% 60–100 localization-parity.md
Performance 60% 20–40 hardware-parity.md
Stability 35% 30–50 gaps.md
Platforms 75% 15–25 gaps.md
Ecosystem and automation 10% 120–200 gaps.md
AI features 20% 40–80 gaps.md

Features

Area Parity Remaining (h) Doc
Draw (2D) 60% 15–25 gaps.md
Modify 50% 40–60 gaps.md
Geometry precision 40% 70–110 geometry-parity.md
Layers and properties 70% 10–15 gaps.md
Dimensions 45% 25–35 gaps.md
Text and MTEXT 35% 30–45 gaps.md
Leaders, tables, fields 25% 25–35 gaps.md
Hatch and gradients 35% 15–25 gaps.md
Blocks, attributes, xrefs, groups 25% 80–120 gaps.md
Layouts, viewports, plotting 35% 35–50 gaps.md
Inquiry and utilities 30% 30–45 gaps.md
Parametric constraints 50% 20–30 geometry-parity.md
3D modelling and rendering 2% 300–450 gaps.md
Collaboration and cloud 5% 40–70 gaps.md

Languages

AutoCAD 2027 for Mac ships 8 interface languages; CADCraft ships English plus fifteen catalogs (Ukrainian, Brazilian Portuguese, German, Spanish, Czech, Russian, French, Simplified Chinese, Italian, Korean, Swedish, Arabic, Greek, Hungarian and Turkish). Detail: localization-parity.md.

Language Status UI translated
English full 100%
Simplified Chinese partial 1,337 catalog rows
Spanish partial 1,243 catalog rows
Hindi none 0%
Arabic partial 1,229 catalog rows
French partial 1,004 catalog rows
Portuguese (Brazilian) partial 1,243 catalog rows
Indonesian none 0%
Japanese none 0%
Greek partial 1,330 catalog rows; independent proofreading pending
German partial 1,031 catalog rows
Korean partial 1,235 catalog rows
Vietnamese none 0%

Other languages shipped: Ukrainian (1,357 rows, the reference catalog, #36), Czech (1,215), Russian (1,005), Italian (1,352), Swedish (1,382), Hungarian (1,326) and Turkish (1,330), counted 2026-10-24; engine messages stay English. Every catalog but Ukrainian's has strings added since it landed that still fall back to English: 6 (Italian, Swedish) to 296 (French) per cargo xtask i18n (localization-parity.md).

Upcoming

Ranked; detail and the full beta checklist in docs/roadmap.md.

  1. Gate and land: CI runs cargo xtask ci on every PR since #1987 (fmt on main is fixed); land the 450 open PRs (2026-10-24) (15–25 h).
  2. Stop losing data on save (DXF done, #528; native MULTILEADER, #459, and the save version, #421, done; through DWG, acadrust still drops some content) (30–45 h).
  3. Real-file DWG/DXF corpus and a black-box check in AutoCAD (10–15 h + owner).
  4. Precision input: object snap tracking, extension/parallel snaps, FROM/M2P/TK, snap overrides, editable dynamic input. Done (#379, #441, #60, #519; snap/tracking.rs, pointmod.rs, dyninput.rs).
  5. Unstub prompt options in TRIM/EXTEND, OFFSET, ROTATE, PLINE, SPLINE, MTEXT, MLEADER. Done (#397, #408, #547); the stubs left are in gaps F1.
  6. Autosave, recovery, AUDIT, RECOVER. Done on the desktop (#406, #416); the web build has no autosave (gaps F4).
  7. Exact ellipse/spline geometry and correct polyline offsets (30–50 h).
  8. Xrefs, block editor, groups, then dynamic blocks (80–120 h): xrefs (#525), groups (#417), the Block Editor (#824, #833, #885), REFEDIT (#818) and dynamic block references (#838–#883) landed; left: dynamic-block authoring, XCLIP, editing an xref in place.

Progress log

Date Entry
2026-10-21 DXF save keeps each proxy object's and proxy entity's class: its class number (group 91) is renumbered to the rewritten CLASSES instead of naming another class, so AutoCAD's visual styles in an R14 file no longer come back as SCALE or MLEADERSTYLE (#1812)
2026-10-14 HATCHEDIT adds boundaries from internal points or closed objects and removes selected loops in the dialog, command line and JSON command; associative links and undo are covered by tests.
2026-10-12 TRIM: a pick after a closed polyline's last cut keeps only the complementary run instead of an extra circuit of the outline (#726)
2026-10-12 HATCHEDIT refuses an explicit bad scale or angle before it edits anything, so a rejected request leaves the drawing, undo and redo as they were (#724)
2026-10-10 Merged main: Ukrainian interface (#36, first string catalog), Dynamic Input pointer boxes with Tab and relative entry (#60), press-drag selection windows (#63), WIPEOUT and hatch gradients kept through DXF/DWG save (#147, #162), SETVAR DIM* as style overrides (#129), UNITS dialog (#38), close-window save prompt (#47), DIMANGULAR on circles (#20), cargo fmt fixed on main. UI/UX 40% → 43% (dynamic input 15% → 45%), localization 3% → 5%; ready for real work ≈ 37% → 38% (weighted 37.2% → 37.7%), mainstream 27% → 28%, essentials 45% → 46%. Beta is now ~37 points away; hours unchanged within rounding.
2026-10-10 Added mainstream practitioner (≈ 27%) and essentials user (≈ 45%) numbers; ready for real work unchanged at ≈ 37%. User evidence: 2 praise comments, 0 "switched from AutoCAD" reports, 27 of 37 open issues on the core path.
2026-10-10 Stage re-normalized from alpha to pre-alpha under the core-workflow gate: drafting with tracking, blocks, plotting and lossless DWG save fail; dimensioning passes. Alpha is ≈ 125–190 h away.
2026-10-10 Full re-measure against AutoCAD 2027 for Mac: menu breadth 245/491 (50%), ready for real work ≈ 37%, stage alpha. Remaining estimates rose (≈ 570 h → 1,300–2,100 h) on new evidence: behaviour audits found tracking/extension/parallel snaps and dynamic input are not real, saves drop unmodelled content, DWG saves as R2000, and the old estimate had no localization, ecosystem, stability, platform or AI rows. New docs: target-app-parity, gaps, roadmap, architecture, localization, file-format, hardware, UI and geometry parity; docs/parity.md became docs/parity-checklist.md.
2026-10-10 About 60 community PRs merged in a day: DXF fidelity (transparency, LWPOLYLINE elevation, frozen VP layers, dimension text rotation, arc-length dims, non-ASCII escapes), CJK font fallback, Save/Don't Save on close, Light/System themes, F2 history, trackpad pan, Linux XWayland drag-and-drop, correctness fixes across draw/modify/constraints. Release v0.4.0.
2026-10-08 Releases v0.1.0–v0.3.0: Flatpak, AppImage updates, signed macOS universal, Windows x64/x86/arm64, Linux, FreeBSD and web builds.
2026-10-07 Old assessment: menu breadth 233/491 (47%), ≈ 29% weighted parity, 2D drafting ≈ 55%, ≈ 570 h remaining; milestones as reported then: M1 ~85%, M2 ~65%, M3 ~75%, M4 ~50%, M5 ~35%, M6 ~55%, M7 ~55%, M8 ~20%, M9 ~60%, M10 ~70%, M11 0%, M12 ~25%, M13 ~10%.
2026-10-07 First version built in one session (≈ 6.9 h elapsed, ≈ 11.5 agent-hours): M0 vertical slice, dimensions, hatch, blocks, DWG bridge, layouts and PDF plotting, GPU canvas, R-tree, constraints, Layer Properties Manager, QSELECT, release pipeline.

Revision history

Date Change Summary
2026-10-24 minor Re-audit against main 41d9b5e95: language table, CI gate and open-PR count re-checked against main 41d9b5e95
2026-10-21 trivial Progress log: proxy objects keep their class through a save (#1812)
2026-10-14 minor Progress log: HATCHEDIT boundary add/remove
2026-10-12 trivial Progress log: closed-polyline TRIM (#726)
2026-10-12 trivial Progress log: HATCHEDIT numeric validation (#724)
2026-10-10 minor Merged main's changes (Ukrainian catalog, dynamic input pointer boxes, DXF fixes); UI/UX and localization numbers updated
2026-10-10 minor Readiness-by-audience table with hours to ~95% for each number
2026-10-10 minor Mainstream practitioner and essentials user headline numbers
2026-10-10 minor Stage alpha → pre-alpha under the core-workflow gate; banner, why, headline row
2026-10-10 major Progress docs restructured (stage, two numbers, dimensions, features, languages, upcoming, log); full re-measure; milestone detail moved to docs/roadmap.md, parity assessment to docs/target-app-parity.md
2026-10-07 major Alpha checklist, milestone table, ≈ 29% weighted parity estimate

Shared UI workspace integration

Tool Sets, Layers and Properties use shared docking with persisted layouts, keyboard focus and compact toolbar overflow. No milestone percentage change.