From 7f98dd1c4731fc701030a2e9d6509a3019427e16 Mon Sep 17 00:00:00 2001 From: bherbruck Date: Sun, 11 Oct 2026 17:12:16 -0400 Subject: [PATCH] Describe SolidCraft as independent parametric CAD --- AGENTS.md | 4 ++-- CLAUDE.md | 4 ++-- CONTRIBUTING.md | 4 ++-- README.md | 21 +++++++++++++-------- ROADMAP.md | 4 ++-- docs/book/src/introduction.md | 4 ++-- 6 files changed, 23 insertions(+), 18 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 56983b96..a1eb30db 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,7 +1,7 @@ # SolidCraft — instructions for agents -SolidCraft is a clean-room, open-source, pure-Rust parametric 3D CAD application in the style of -Autodesk Fusion: sketches with a constraint solver, a parametric timeline of features, a B-rep +SolidCraft is an independent, clean-room, open-source, pure-Rust parametric 3D CAD application: +sketches with a constraint solver, a parametric timeline of features, a B-rep kernel, and a desktop UI that agents can drive. Siblings with the same conventions live next to it in `storytold/`: `cadcraft` (AutoCAD-style, the closest relative), `photocraft`, `vectorcraft`, `gridcraft`, `designcraft`, `wordcraft`, `deckcraft`, `soundcraft`. Repos don't share code; when diff --git a/CLAUDE.md b/CLAUDE.md index 244ec69a..a9d8787b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,7 +1,7 @@ # SolidCraft — instructions for agents -SolidCraft is a clean-room, open-source, pure-Rust parametric 3D CAD application in the style of -Autodesk Fusion: sketches with a constraint solver, a parametric timeline of features, a B-rep +SolidCraft is an independent, clean-room, open-source, pure-Rust parametric 3D CAD application: +sketches with a constraint solver, a parametric timeline of features, a B-rep kernel, and a desktop UI that agents can drive. Siblings with the same conventions live next to it in `storytold/`: `cadcraft` (AutoCAD-style, the closest relative), `photocraft`, `vectorcraft`, `gridcraft`, `designcraft`, `wordcraft`, `deckcraft`, `soundcraft`. Repos don't share code; when diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d77e75d6..1fac0525 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ # Contributing to SolidCraft -SolidCraft is an open-source parametric 3D CAD app written in pure Rust, in the style of -Autodesk Fusion. You sketch on a plane, constrain the sketch, turn profiles into solids, and +SolidCraft is an independent, open-source parametric 3D CAD app written in pure Rust. +You sketch on a plane, constrain the sketch, turn profiles into solids, and change a parameter to watch the timeline rebuild. It runs as a desktop app (Windows, Linux), in the browser (wasm + WebGPU/WebGL2), headless from a CLI, and as an MCP server that AI agents can model with. diff --git a/README.md b/README.md index d43cfb6c..e08ff0a4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # SolidCraft -**Parametric 3D CAD; an open-source, [clean-room](CLAUDE.md) reimplementation of Autodesk -Fusion 360, built in pure Rust.** +**An independent, open-source parametric 3D CAD application built in pure Rust.** Sketch, constrain, and build solids with a parametric feature timeline. Change a dimension and watch your model rebuild. Run it on your desktop, in your browser, or let AI agents @@ -15,9 +14,10 @@ model through the built-in MCP server. Part of the storytold "craft" family. developer guide and command reference; sources in [docs/book](docs/book)), and the [web app](https://bherbruck.github.io/solidcraft/app/) to try it in the browser. -**Status: early but usable for simple parts.** 76 of 76 reference parts built in Fusion -rebuild in SolidCraft with the same volume, area and topology ([docs/oracle.md](docs/oracle.md)); -command parity with Fusion's Design workspace is tracked in [docs/parity.md](docs/parity.md). +**Status: early but usable for simple parts.** The historical benchmark report records +76 of 76 reference parts matching volume, area and topology ([docs/oracle.md](docs/oracle.md)). +These checks do not establish complete geometric or workflow equivalence. Feature coverage +is tracked in [docs/parity.md](docs/parity.md) and [ROADMAP.md](ROADMAP.md). Open work and known bugs are in [GitHub issues](https://github.com/bherbruck/solidcraft/issues), and help is welcome: see [CONTRIBUTING.md](CONTRIBUTING.md). @@ -85,7 +85,7 @@ renamed repository; old-name Pages and Flatpak URLs are not maintained as perman Feature errors and Help can open an editable **Create Issue** draft with relevant context and an optional reviewed screenshot; opening GitHub does not submit the report. - **Headless CLI** `solvecraft-cli`: run command scripts, measure (volume, area, centre of mass, - face/edge/vertex counts), export, render PNG snapshots, replay Fusion oracle recipes. + face/edge/vertex counts), export, render PNG snapshots and replay reference recipes. - **MCP server** `solvecraft-cli mcp`: AI agents model, measure and look at parts headless or in the running app (see below). @@ -155,5 +155,10 @@ and licence rules, and where help is wanted most. ## Licence -MIT OR Apache-2.0, at your option. SolidCraft is not affiliated with Autodesk; Fusion is a -trademark of Autodesk, Inc. +MIT OR Apache-2.0, at your option. Developed independently under the +[clean-room contribution rules](CLAUDE.md); third-party code and assets retain their +documented licences and attribution. + +References to other products describe workflow comparisons and benchmark provenance. +SolidCraft is not affiliated with, sponsored by or endorsed by Autodesk. Autodesk and +Fusion are trademarks of Autodesk, Inc. diff --git a/ROADMAP.md b/ROADMAP.md index 0941a6d8..2deb5c5d 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # SolidCraft roadmap -Status as of **2026-10-11**. SolidCraft targets Fusion-style parametric modelling (sketch → +Status as of **2026-10-11**. SolidCraft supports parametric modelling (sketch → features → parametric timeline) as an open, pure-Rust, agent-drivable application. ## At a glance @@ -54,7 +54,7 @@ headline counts in-scope tabs only and lists the deferred ones separately. | M6 | UI depth: selection feedback and origin (done), timeline editing (done: hover and selection highlight modifier faces, including fillets and chamfers; edit feature, history marker drag, reorder with dependency checks, suppress, rename, delete with dependents, re-resolved references; redefining selections refreshes persistent edge/face references while retaining feature identity and dimension names), right-docked dialogs (done), live previews for every feature dialog (done), keyboard-first commands with on-canvas value boxes and sketch inline dimensions (done), drag manipulators with automatic join/cut (done: extrude incl. two sides, fillet, shell, hole depth, move, pattern spacing, revolve rotator; taper handle open), dark theme (done), right-click menu with Repeat (done), measure tool (done), section analysis (done), selection filter (done), drag-solve of sketch points (done); appearance controls now preserve body/face/component targeting, named transparent looks, reuse/search and override removal; preferences | in progress | 6 | | M7 | Sweep, loft (incl. to a point), rib and web (to next / depth), emboss (planar faces and exact radial emboss/deboss of bounded orthogonal profiles on complete exterior cylinders/sleeves), thread (cosmetic, and modelled M3–M20 outside and inside: the ISO profile screwed in as a faceted cut), coil (smooth B-spline helical walls), pipe, pattern on path, patterns of bodies and components, replace face (parallel), align, remove, feature copy/paste: done. Unique eligible cylindrical targets are inferred for new Emboss features. Left: general curved-face emboss and exact (unfaceted) modelled threads | in progress | 12 | | M8 | Surface workspace | deferred | — | -| M9 | Components and assemblies (Fusion-style): New Component / Create Components from Bodies, active component, per-component origin/bodies/sketches/timeline entries, occurrences with transforms, Copy/Paste vs Paste New, nested Browser tree with visibility and isolate; Ground, Move/Copy of occurrences, joints (rigid, revolute, slider, cylindrical, pin-slot, planar, ball) by joint origins with limits and Drive Joints, As-built Joint, Rigid Group, Contact Sets (driving and motion studies stop where bodies in a set would pass through each other), Motion Study (joint values keyed along a timeline, playback, export of occurrence positions as JSON/CSV), Exploded views (automatic or by hand, shown without changing placements); interference, per-component physical properties; STEP with assembly structure. Physical properties now measure material-aware component/occurrence placements, descendants and repeated instances, including pending moves and body reassignment offsets; contact geometry and automatic exploded centres respect those offsets. Groundwork done: component tree, occurrences with transforms (instances, Paste New), world placement, active component as authoring frame, ground, Capture/Revert Position, moving bodies and sketches. UI: ASSEMBLE panel dialogs for New Component, Joint (snaps on faces, edges, circles and vertices; animated motion preview; offsets, flip, limits), As-built Joint, Joint Origin, Rigid Group, Drive Joints (live slider), Motion Link and Interference (overlaps shown red); joints in the timeline and the Browser | in progress | 32 | +| M9 | Components and assemblies: New Component / Create Components from Bodies, active component, per-component origin/bodies/sketches/timeline entries, occurrences with transforms, Copy/Paste vs Paste New, nested Browser tree with visibility and isolate; Ground, Move/Copy of occurrences, joints (rigid, revolute, slider, cylindrical, pin-slot, planar, ball) by joint origins with limits and Drive Joints, As-built Joint, Rigid Group, Contact Sets (driving and motion studies stop where bodies in a set would pass through each other), Motion Study (joint values keyed along a timeline, playback, export of occurrence positions as JSON/CSV), Exploded views (automatic or by hand, shown without changing placements); interference, per-component physical properties; STEP with assembly structure. Physical properties now measure material-aware component/occurrence placements, descendants and repeated instances, including pending moves and body reassignment offsets; contact geometry and automatic exploded centres respect those offsets. Groundwork done: component tree, occurrences with transforms (instances, Paste New), world placement, active component as authoring frame, ground, Capture/Revert Position, moving bodies and sketches. UI: ASSEMBLE panel dialogs for New Component, Joint (snaps on faces, edges, circles and vertices; animated motion preview; offsets, flip, limits), As-built Joint, Joint Origin, Rigid Group, Drive Joints (live slider), Motion Link and Interference (overlaps shown red); joints in the timeline and the Browser | in progress | 32 | | M10 | Sheet metal: flange (base, edge, contour), hem, unfold/refold, convert, flat pattern + DXF, rules: done (oracle 67-76). PLASTIC enclosure subset: Boss, Rib, Web, Lip/Groove, Snap Fit, Rest, Plastic Rules (library, edit, assign; rule draft and clearance as feature defaults): done, no Fusion oracle (licence), tested against hand-computed geometry. UI: SHEET METAL and PLASTIC tabs in Fusion's layout with dialogs (live preview, Edit Feature, pre-selection) for Flange, Hem, Unfold/Refold, Convert, Sheet Metal Rules, Create Flat Pattern (flat view with bend lines, bend table CSV/JSON and DXF export with exact circle/arc/line cutouts), Boss, Lip/Groove, Snap Fit, Rest, Manage and Assign Plastic Rules; Fold (bend along a sketch line) | in progress | 36 | | M11 | 2D drawings | deferred | — | | M12 | Release: cross-platform packages, verification and deliberate publication implemented; original current-UI demo refreshed. Trusted distribution signing and broader performance work remain | in progress | 16 | diff --git a/docs/book/src/introduction.md b/docs/book/src/introduction.md index 3f336c45..50807a94 100644 --- a/docs/book/src/introduction.md +++ b/docs/book/src/introduction.md @@ -1,7 +1,7 @@ # SolidCraft -SolidCraft is an open-source parametric 3D CAD application written in pure Rust. It works the way -Fusion-style modellers do: sketch on a plane, constrain and dimension the sketch, turn profiles +SolidCraft is an independent, open-source parametric 3D CAD application written in pure Rust. +Sketch on a plane, constrain and dimension the sketch, turn profiles into solids with features on a timeline, and change a parameter to watch the whole timeline rebuild.