Show HN: SolidCraft – Open-Source Parametric CAD in Rust (With MCP Support)
SolidCraft is an open-source parametric 3D CAD application written in pure Rust. It has constrained sketches with its own solver, a feature timeline, assemblies, sheet metal, and STEP/IGES/3MF/STL export. It runs on desktop (egui+wgpu), in the browser, and as a headless CLI. The built-in MCP server (`solidcraft-cli mcp`) gives agents tools such as execute, batch, inspect_design, measure, set_parameter, screenshot and export. They can model headless or drive the running app over a JSON-lines control channel. A rover with 3,323 timeline steps was built entirely through MCP, which shows agent-driven parametric modelling working at scale.
What it claims
SolidCraft is MIT OR Apache-2.0 licensed (your choice) and developed under clean-room contribution rules. The authors call it "early but usable for simple parts." Their correctness evidence is a reference suite of 76 public parts: 75 match analytic or FreeCAD-computed volume, area, centre of mass and bounding box, and the remaining one is a tracked bug. The page states that these checks "do not establish complete geometric or workflow equivalence."
How it works
Sketch solver
- Points that the constraints fix relative to known geometry are placed exactly, by construction. This uses loci intersections and rigid-cluster decomposition, following Owen 1991 and Fudos–Hoffmann 1997.
- Levenberg–Marquardt solves the remaining points.
- The rank of the Jacobian gives the remaining degrees of freedom.
- Over-constraining edits are rejected.
- While dragging, the sketch is solved every frame, but the model rebuilds only once, when the drag ends.
Scripting. Every UI action is a registered command, and a script is a JSON list of those same commands:
{"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}}
]}MCP modes. The MCP server runs on stdio in one of two modes:
- Headless: it runs its own design session.
- Connected: with
--connect 127.0.0.1:PORT, it drives a desktop app started withsolidcraft --control PORT, so you can watch the agent work.
MCP tools. The full list is list_commands, execute, batch, inspect_design, measure, body_topology, set_parameter, screenshot (returns the image), export, undo, redo, new_design, open, save.
MCP file access is limited to:
- the open design's folder, but only when it lies inside your home folder, and never the home folder itself or a hidden folder;
- SolidCraft's recovery folder;
- folders passed with
--allow-path DIR.
How to use it
Prebuilt downloads are available for:
- Windows: x64, ARM64 and 32-bit, as an installer or portable zip
- macOS: Apple silicon and Intel
- Linux: AppImage, .deb, .rpm, Flatpak and Snap, with ARM64 builds as AppImage, .deb and .rpm
- A browser build
Snap install:
sudo snap install solidcraftRegistering the MCP server with Claude Code:
claude mcp add solidcraft -- solidcraft-cli mcpFrom source:
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-cli -- eval part.step # measure an imported STEP file
cargo xtask ci # fmt, clippy, tests, assets, layers, wasmThe web build uses WebGPU, or WebGL2 if you add ?webgl to the URL:
cd apps/solidcraft-web && trunk build --release --public-url ./Interop beyond export
- STEP import supports AP203, AP214 and AP242 solids and assemblies, and IGES import supports manifold B-reps and sewn trimmed surfaces. An imported model becomes a base feature that later features can build on.
- STEP export (AP242) writes revolved faces as native analytic surfaces.
- Sheet metal produces exact line/arc/circle DXF flat patterns.
3D mouse. 3Dconnexion devices are supported on Windows and Linux. On Linux you need a udev rule, for example:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", TAG+="uaccess"Limits
- Maturity: the project is early-stage, with one known reference-part failure. Supported operations and limitations are listed in ROADMAP.md, which the page does not reproduce.
- Unsigned downloads: you will have to bypass SmartScreen on Windows and Gatekeeper on macOS.
- Mesh import: 3MF, STL and OBJ come in as mesh bodies, which solid features cannot use. Convert Mesh only reconstructs closed constant-section parts with planar and circular-cylindrical faces.
- Flatpak: the 3D mouse does not work because the sandbox does not expose hidraw devices.
- Affiliation: the project is not affiliated with Autodesk. Fusion-like workflows are modelled on public documentation, not on compatibility with Autodesk's file formats.
Organisations named here
- Autodesk
- 3Dconnexion
- Claude Code
- Model Context Protocol
- SELENE
Technologies named here
- SolidCraft
- solidcraft-cli
- SolidCraft MCP server
- Claude Code
- FreeCAD
- egui
- wgpu
- Rust
- Model Context Protocol
- WebAssembly
- Flatpak
Techniques named here
- Agent-driven CAD modelling via MCP
Related in mcp

OKX Agent Trade Kit (okx-trade-mcp / okx-trade-cli)
