返回目录
开源项目自动化与 Agent 类新手

GitHub - bherbruck/solidcraft: SolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation thr

SolidCraft An 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

3 次阅读2026/11/10 发布
GitHub - bherbruck/solidcraft: SolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation thr 来源图片

社区作者 · zZz

它解决什么问题

SolidCraft

An 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 model through the built-in MCP server.

Start with an empty design and draw the original parametric electronics enclosure in the English desktop UI: rounded corners, a shell, a USB port sketched directly on the wall and a four-boss pattern.

Change width from 80 → 100 mm and wall thickness from 2 → 3 mm in Parameters and watch it rebuild. Original animated pointer and click cues; 4× playback. Full video , generated with the demo script .

Download

Also for ARM64 and 32-bit PCs, or as a portable zip that runs without installing.

  • Windows: download and run the installer .

(Apple silicon and Intel).

  • macOS: open the disk image and drag SolidCraft into Applications

Or install the .deb (Ubuntu, Debian, Mint) or .rpm (Fedora, openSUSE), or use Flatpak . With Snap: sudo snap install solidcraft ( Snap Store , or the .snap file ). For ARM64: AppImage , .deb , .rpm .

  • Linux: download the AppImage , allow it to run as a program and open it.
  • Web: try it in your browser , no install.

The downloads aren't signed yet. On Windows, if SmartScreen warns you, choose More info , then Run anyway . On macOS, the first time, right-click SolidCraft in Applications and choose Open .

Older versions, checksums and other formats are on the releases page . Install details, upgrading from earlier builds and building from source are in Getting started .

Documentation: the SolidCraft book (user guide, developer guide and command reference; sources in docs/book ).

Status: early but usable for simple parts. 75 of 76 public reference parts match their analytic or FreeCAD-computed volume, area, centre of mass and bounding box ( docs/oracle.md ); the other is a tracked bug.

These checks do not establish complete geometric or workflow equivalence. The commands SolidCraft has are listed by area in docs/features.md ; status and plans are in ROADMAP.md .

Open work and known bugs are in GitHub issues , and help is welcome: see CONTRIBUTING.md .

What works

arcs, polygons, slots, ellipses, fit/control splines, conics and text; construction geometry, projection, trimming, fillets and chamfers, including corners at the origin.

New face attachments retain supported construction identities and chosen occurrences; missing sources expose an explicit plane repair workflow. See face attachments . Explicitly closed fit splines and closed associative offsets use periodic C2 interpolation.

Supported convex line-and-arc offsets retain their identity when an inset consumes corner arcs, and linked extrusions follow the current boundary. Breaking the association freezes the boundary and keeps existing extrusions usable.

Curve drawing and picking adapt together to zoom and display scale, including small circles at Fit and sketches in placed components.

  • Sketches on origin planes, offset planes or planar faces: lines, rectangles, circles,

to known geometry are placed exactly by construction (loci intersections and rigid-cluster decomposition, after Owen 1991 and Fudos–Hoffmann 1997); Levenberg–Marquardt solves the rest, and the rank of its Jacobian gives the remaining degrees of freedom.

Constraints: coincident, point on curve, horizontal/vertical, parallel, perpendicular, tangent, curvature (G2), equal, concentric, collinear, midpoint, symmetry, fix; linear, aligned, horizontal, vertical, point-to-line, radius, diameter, angle, arc sweep, arc length and slot length dimensions driven by parameters.

Over-constraining edits are rejected; fully constrained geometry turns black. Dragging solves the sketch every frame and rebuilds the model once, when the drag ends.

Select a line or its two endpoints, type its dimension and press Enter to commit one undo step. Fit keeps sketch geometry clear of the palette and navigation controls.

  • Constraints and dimensions solved by our own solver. Points the constraints fix relative

Newly captured complete adaptive boundaries retain their outer and hole source identities when spline span counts change. Partial or ambiguous boundaries do not qualify.

  • Profiles found automatically, including regions split by lines and holes inside outlines.

shell, draft, holes, threads, patterns, mirror, split, combine, move and construction geometry. The timeline rebuilds incrementally; features can be edited, suppressed, renamed, reordered and deleted.

Supported geometry and current limitations are described in ROADMAP.md . New revolves preserve symmetric and two-sided angular placement across reversed axes; older designs retain their saved convention when reopened or edited.

  • Features on a parametric timeline: extrude, revolve, sweep, loft, fillet/chamfer,

angle / 2 ), ordered rules, feature suppression and per-row body materials/appearances.

  • Parameters and configurations with unit-aware expressions ( 2 * width + 5 mm ,

interference and material-aware mass properties. Recorded body transfers preserve modelling history and world placement; 3D sketch wires retain their coordinate frames through edits.

  • Assemblies with nested components and occurrences, joints, motion studies, contact sets,

retained shallow prismatic pockets, exact line/arc/circle DXF outlines and bend tables; plastic enclosure features and rules. Pocket depth and side survive unfold/refold and appear separately from through-hole outlines in the flat preview and DXF.

  • Sheet metal with flanges, hems, fold/unfold/refold, material cutouts, flat patterns,

plain JSON remains supported for opening, Save As and export. Desktop Open can show a saved experimental preview (explicit preview: true engine saves) while checking geometry before editing.

Export to STEP (AP242 with body names, colours and components as assemblies; revolved faces as native planes, cylinders, cones, spheres and tori), IGES 5.

3 (manifold solid B-reps with names and colours), 3MF, STL (binary/ASCII) and OBJ; 3MF, STL and OBJ import as mesh bodies (they render, measure, move and export; solid features need B-rep bodies).

Convert Mesh reconstructs supported closed constant-section parts as parametric solids with planar and circular cylindrical faces; STEP import (AP203/AP214/AP242 solids, assemblies, units, names, colours) and IGES import (manifold solid B-reps, or trimmed and bounded surfaces sewn into solids) as a base feature that later features build on — open a .

step / .stp / .igs / .iges file, insert one into a design, or drop it on the window ( docs/step-import.md ).

  • Files : design containers ( .solidcraft ) with lossless binary mesh payloads;

axis view and navigation bar, sketch tools, feature dialogs, command palette, and a JSON-lines control channel so agents and tests can drive it.

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.

  • Desktop app (egui + wgpu): toolbar with workspace tabs, browser, timeline, 3D viewport with

face/edge/vertex counts), export, render PNG snapshots and replay reference recipes.

  • Headless CLI solidcraft-cli : run command scripts, measure (volume, area, centre of mass,

in the running app (see below).

  • MCP server solidcraft-cli mcp : AI agents model, measure and look at parts headless or

Build and run

命令
cargo run --release -p solidcraft -- --sample # desktop app with a sample part
命令
cargo run --release -p solidcraft-cli -- commands # the command registry
命令
cargo run --release -p solidcraft-cli -- run examples/bracket.json --out bracket.step
命令
cargo run --release -p solidcraft-cli -- snapshot examples/bracket.json --out bracket.png
命令
cargo run --release -p solidcraft -- part.step # open a STEP file as a new design
命令
cargo run --release -p solidcraft-cli -- eval part.step # measure an imported STEP file
命令
cargo xtask ci # fmt, clippy, tests, assets, layers, wasm

Windows builds

Windows builds
cargo xwin build --release --target x86_64-pc-windows-msvc -p solidcraft .

On Windows and Linux, SolidCraft detects a connected 3Dconnexion SpaceNavigator or SpaceMouse through its multi-axis HID interface. Move the cap to pan and zoom, and tilt or twist it to rotate the 3D view.

While editing a sketch, the cap pans and zooms without changing the sketch view. The Navigation page in Preferences has an on/off switch and a speed control for the 3D mouse.

On Linux SolidCraft reads /dev/hidrawN directly, so the logged-in user needs access to the device. A udev rule that adds the uaccess tag does that, for example /etc/udev/rules.d/70-3d-mouse.rules for devices with 3Dconnexion's vendor id:

命令
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", TAG+="uaccess"

Older SpaceNavigators use Logitech's vendor id 046d ; add a rule with their product id (see lsusb ) instead of matching every Logitech device. Reload with sudo udevadm control --reload && sudo udevadm trigger , then replug the device.

The Flatpak sandbox does not expose hidraw devices, so the 3D mouse only works with native builds there for now. Devices that send all six axes in HID report 1 (some homemade ones do) are recognised from their report descriptor, so they work as well.

In the browser

In the browser
cd apps/solidcraft-web && trunk build --release --public-url ./ (WebGPU, or

WebGL2 with ?webgl ; ?sample opens the sample part).

Scripts

A script is a JSON list of commands, the same ones the UI runs:

{ "commands" : [ { "command" : " sketch.create " , "params" : { "plane" : " XY " }}, { "command" : " sketch.rectangle.two_point " , "params" : { "p0" : [ 0 , 0 ], "p1" : [ 40 , 30 ]}}, { "command" : " solid.

extrude " , "params" : { "distance" : 20 }}, { "command" : " solid.fillet " , "params" : { "edges" : [[ 0 , 0 , 10 ]], "radius" : 3 }} ]}

AI agents (MCP)

solidcraft-cli mcp is a Model Context Protocol server on stdio. Headless it runs its own design session; with --connect 127.0.0.1:PORT it drives the app started with solidcraft --control PORT , so you can watch the agent model.

Tools: list_commands , execute , batch , inspect_design , measure , body_topology , set_parameter , screenshot (returns the image), export , undo , redo , new_design , open , save . Claude Code: claude mcp add solidcraft -- solidcraft-cli mcp .

Details, client configuration and an example session: docs/mcp.md .

Architecture

Layer Crates Role

L0 geom vectors, planes, profiles, meshes and their measures

L1 sketch , kernel , render constraint solver and profiles; the B-rep kernel boundary (truck); view math and CPU rasterizer

L2 doc parameters, expressions, the feature timeline and its incremental evaluation

L3 io design files, STL/OBJ/STEP/3MF export, STEP and 3MF/STL import features

L4 engine the session and the command registry (everything is a command)

L5 ui-egui , mcp the swappable desktop front end; the MCP server (headless or bridged to the app)

apps solidcraft , solidcraft-cli desktop app, headless CLI

Contributing

Coming from Autodesk Fusion? SolidCraft uses familiar parametric CAD workflows: constrained sketches, solid features, an editable timeline, parameters and assemblies. See the roadmap for supported operations and current limitations.

See CONTRIBUTING.md : how to build and test, the code map, the clean-room and licence rules, and where help is wanted most.

Licence

MIT OR Apache-2.0, at your option. Developed under the clean-room contribution rules ; third-party code and assets retain their documented licences and attribution.

SolidCraft is independent. Behaviour is designed from public documentation, general CAD conventions and user feedback. Reference tests use analytic values and open-source tools. SolidCraft is not affiliated with, sponsored by or endorsed by Autodesk.

Autodesk and Fusion are trademarks of Autodesk, Inc.

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

Also for ARM64 and 32-bit PCs, or as a portable zip that runs without installing.

(Apple silicon and Intel).

Or install the .deb (Ubuntu, Debian, Mint) or .rpm (Fedora, openSUSE), or use Flatpak . With Snap: sudo snap install solidcraft ( Snap Store , or the .snap file ). For ARM64: AppImage , .deb , .rpm .

The downloads aren't signed yet. On Windows, if SmartScreen warns you, choose More info , then Run anyway . On macOS, the first time, right-click SolidCraft in Applications and choose Open .

Older versions, checksums and other formats are on the releases page . Install details, upgrading from earlier builds and building from source are in Getting started .

Documentation: the SolidCraft book (user guide, developer guide and command reference; sources in docs/book ). Status: early but usable for simple parts.

75 of 76 public reference parts match their analytic or FreeCAD-computed volume, area, centre of mass and bounding box ( docs/oracle.md ); the other is a tracked bug. These checks do not establish complete geometric or workflow equivalence.

The commands SolidCraft has are listed by area in docs/features.md ; status and plans are in ROADMAP.md . Open work and known bugs are in GitHub issues , and help is welcome: see CONTRIBUTING.md . What works

arcs, polygons, slots, ellipses, fit/control splines, conics and text; construction geometry, projection, trimming, fillets and chamfers, including corners at the origin.

New face attachments retain supported construction identities and chosen occurrences; missing sources expose an explicit plane repair workflow. See face attachments . Explicitly closed fit splines and closed associative offsets use periodic C2 interpolation.

Supported convex line-and-arc offsets retain their identity when an inset consumes corner arcs, and linked extrusions follow the current boundary. Breaking the association freezes the boundary and keeps existing extrusions usable.

Curve drawing and picking adapt together to zoom and display scale, including small circles at Fit and sketches in placed components.

to known geometry are placed exactly by construction (loci intersections and rigid-cluster decomposition, after Owen 1991 and Fudos–Hoffmann 1997); Levenberg–Marquardt solves the rest, and the rank of its Jacobian gives the remaining degrees of freedom.

Constraints: coincident, point on curve, horizontal/vertical, parallel, perpendicular, tangent, curvature (G2), equal, concentric, collinear, midpoint, symmetry, fix; linear, aligned, horizontal, vertical, point-to-line, radius, diameter, angle, arc sweep, arc length and slot length dimensions driven by parameters.

Over-constraining edits are rejected; fully constrained geometry turns black. Dragging solves the sketch every frame and rebuilds the model once, when the drag ends.

Select a line or its two endpoints, type its dimension and press Enter to commit one undo step. Fit keeps sketch geometry clear of the palette and navigation controls.

Newly captured complete adaptive boundaries retain their outer and hole source identities when spline span counts change. Partial or ambiguous boundaries do not qualify.

shell, draft, holes, threads, patterns, mirror, split, combine, move and construction geometry. The timeline rebuilds incrementally; features can be edited, suppressed, renamed, reordered and deleted.

Supported geometry and current limitations are described in ROADMAP.md . New revolves preserve symmetric and two-sided angular placement across reversed axes; older designs retain their saved convention when reopened or edited.

angle / 2 ), ordered rules, feature suppression and per-row body materials/appearances.

interference and material-aware mass properties. Recorded body transfers preserve modelling history and world placement; 3D sketch wires retain their coordinate frames through edits.

retained shallow prismatic pockets, exact line/arc/circle DXF outlines and bend tables; plastic enclosure features and rules. Pocket depth and side survive unfold/refold and appear separately from through-hole outlines in the flat preview and DXF.

plain JSON remains supported for opening, Save As and export. Desktop Open can show a saved experimental preview (explicit preview: true engine saves) while checking geometry before editing.

Export to STEP (AP242 with body names, colours and components as assemblies; revolved faces as native planes, cylinders, cones, spheres and tori), IGES 5.

3 (manifold solid B-reps with names and colours), 3MF, STL (binary/ASCII) and OBJ; 3MF, STL and OBJ import as mesh bodies (they render, measure, move and export; solid features need B-rep bodies).

Convert Mesh reconstructs supported closed constant-section parts as parametric solids with planar and circular cylindrical faces; STEP import (AP203/AP214/AP242 solids, assemblies, units, names, colours) and IGES import (manifold solid B-reps, or trimmed and bounded surfaces sewn into solids) as a base feature that later features build on — open a .

step / .stp / .igs / .iges file, insert one into a design, or drop it on the window ( docs/step-import.md ).

axis view and navigation bar, sketch tools, feature dialogs, command palette, and a JSON-lines control channel so agents and tests can drive it.

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.

face/edge/vertex counts), export, render PNG snapshots and replay reference recipes.

in the running app (see below). Build and run

  • Windows: download and run the installer .
  • macOS: open the disk image and drag SolidCraft into Applications
  • Linux: download the AppImage , allow it to run as a program and open it.
  • Web: try it in your browser , no install.
  • Sketches on origin planes, offset planes or planar faces: lines, rectangles, circles,
  • Constraints and dimensions solved by our own solver. Points the constraints fix relative
  • Profiles found automatically, including regions split by lines and holes inside outlines.
  • Features on a parametric timeline: extrude, revolve, sweep, loft, fillet/chamfer,
  • Parameters and configurations with unit-aware expressions ( 2 * width + 5 mm ,
  • Assemblies with nested components and occurrences, joints, motion studies, contact sets,
  • Sheet metal with flanges, hems, fold/unfold/refold, material cutouts, flat patterns,
  • Files : design containers ( .solidcraft ) with lossless binary mesh payloads;
  • Desktop app (egui + wgpu): toolbar with workspace tabs, browser, timeline, 3D viewport with
  • Headless CLI solidcraft-cli : run command scripts, measure (volume, area, centre of mass,
  • MCP server solidcraft-cli mcp : AI agents model, measure and look at parts headless or
命令
cargo run --release -p solidcraft -- --sample # desktop app with a sample part
命令
cargo run --release -p solidcraft-cli -- commands # the command registry

来源教程配图

SolidCraft: draw a rounded electronics enclosure, sketch its USB port directly on a face, add four mounting bosses and resize it through Parameters
配图 1 · SolidCraft: draw a rounded electronics enclosure, sketch its USB port directly on a face, add four mounting bosses and resize it through Parameters查看原图

适用场景

学习研究
开源项目实践