SolidCraft 0.6: Open-Source Parametric CAD in Rust with Built-In MCP Support
SolidCraft is an open-source parametric 3D CAD application built in pure Rust that runs as a desktop app, in a browser, and as a headless CLI — and it ships a built-in Model Context Protocol (MCP) server so AI agents can drive the same modelling commands a human uses. The project, posted to Hacker News as a Show HN by author bherbruck, is licensed MIT OR Apache-2.0 and describes itself as "early but usable for simple parts."
What SolidCraft is
SolidCraft is a parametric CAD application with a constrained-sketch and feature-timeline workflow, written in Rust and distributed for Windows, macOS, Linux, Snap and the web. Its stated design goal is familiarity for users coming from Autodesk Fusion: constrained sketches, solid features, an editable timeline, parameters and assemblies.
The project is independent and developed under clean-room contribution rules. Its README states that behaviour is designed from public documentation, general CAD conventions and user feedback, that reference tests use analytic values and open-source tools, and that SolidCraft is not affiliated with, sponsored by or endorsed by Autodesk.
The current demo is labelled 0.6 and shows a Raspberry Pi 4 case modelled from an empty design: a sketch dimensioned with the board's parameters, extrude, fillet, shell, an M2.5 standoff patterned on the 58 × 49 mm hole rectangle, port cut-outs, vent slots and a colour, followed by a height change from 24 mm to 32 mm in Parameters that rebuilds the whole model.
Accuracy status: 75 of 76 reference parts match
SolidCraft's README reports that 75 of 76 public reference parts match their analytic or FreeCAD-computed volume, area, centre of mass and bounding box, with the remaining part tracked as a bug. The project explicitly cautions that these checks do not establish complete geometric or workflow equivalence.
This is the single most concrete quality claim in the project's documentation, and it is scoped narrowly: it covers measurement agreement on a fixed set of reference parts, not general modelling correctness.
Architecture: everything is a command
SolidCraft is organised into layered crates, and the README states that "everything is a command" — the same command registry the UI runs is what scripts and MCP clients call.
| 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 |
| L5 | ui-egui, mcp |
the swappable desktop front end; the MCP server |
| apps | solidcraft, solidcraft-cli |
desktop app, headless CLI |
The B-rep kernel boundary is the truck crate, an existing open-source Rust modelling kernel. The desktop front end uses egui and wgpu.
Sketching, constraints and the feature timeline
Sketches can be placed on origin planes, offset planes or planar faces, and support lines, rectangles, circles, arcs, polygons, slots, ellipses, fit/control splines, conics and text, plus construction geometry, projection, trimming, fillets and chamfers.
Constraints and dimensions are solved by SolidCraft's own solver. Points that constraints fix relative to known geometry are placed exactly by construction, using loci intersections and rigid-cluster decomposition after Owen 1991 and Fudos–Hoffmann 1997; the rest are solved with Levenberg–Marquardt, and the rank of its Jacobian gives the remaining degrees of freedom. Supported constraints include coincident, point on curve, horizontal/vertical, parallel, perpendicular, tangent, curvature (G2), equal, concentric, collinear, midpoint, symmetry and fix, plus 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, and fully constrained geometry turns black.
Features on the parametric timeline include extrude, revolve, sweep, loft, fillet/chamfer, shell, draft, holes, threads, patterns, mirror, split, combine, move and construction geometry. The timeline rebuilds incrementally, and features can be edited, suppressed, renamed, reordered and deleted.
Parameters and configurations support unit-aware expressions such as 2 * width + 5 mm and angle / 2, ordered rules, feature suppression and per-row body materials and appearances. Assemblies support nested components and occurrences, joints, motion studies, contact sets, interference and material-aware mass properties. Sheet metal support covers flanges, hems, fold/unfold/refold, material cutouts, flat patterns, retained shallow prismatic pockets, exact line/arc/circle DXF outlines and bend tables.
File formats and interoperability
SolidCraft saves designs in .solidcraft containers with lossless binary mesh payloads, and plain JSON remains supported for opening, Save As and export.
Export formats are STEP (AP242 with body names, colours and components as assemblies, with revolved faces as native planes, cylinders, cones, spheres and tori), IGES 5.3, 3MF, STL (binary and ASCII) and OBJ. Import covers STEP (AP203/AP214/AP242 solids, assemblies, units, names, colours) and IGES (manifold solid B-reps, or trimmed and bounded surfaces sewn into solids) as a base feature that later features build on. 3MF, STL and OBJ import as mesh bodies that render, measure, move and export, but solid features require B-rep bodies; a Convert Mesh command reconstructs supported closed constant-section parts as parametric solids with planar and circular cylindrical faces.
MCP server: AI agents drive the same commands
solidcraft-cli mcp is a Model Context Protocol server over stdio. Run headless, it starts its own design session; run with --connect 127.0.0.1:PORT, it drives an app started with solidcraft --control PORT, so a user can watch the agent model in the running UI.
The exposed tools are list_commands, execute, batch, inspect_design, measure, body_topology, set_parameter, screenshot (which returns the image), export, undo, redo, new_design, open and save. Claude Code can register it with claude mcp add solidcraft -- solidcraft-cli mcp.
The desktop app also exposes a JSON-lines control channel so agents and tests can drive it, and the headless CLI solidcraft-cli can run command scripts, measure volume, area, centre of mass and face/edge/vertex counts, export, render PNG snapshots and replay reference recipes. A script is a JSON list of the same commands 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}}
]}
Platforms and installation
SolidCraft ships installers for Windows (x64, ARM64, 32-bit, plus a portable zip), a universal macOS disk image for Apple silicon and Intel, and Linux builds as AppImage, .deb, .rpm, Flatpak and Snap (sudo snap install solidcraft), including ARM64 variants. A browser build runs at bherbruck.github.io/solidcraft/app/ with no install, using WebGPU or WebGL2 via a ?webgl query parameter.
The downloads are not signed yet. On Windows, SmartScreen requires choosing More info then Run anyway; on macOS the first launch requires right-clicking the app and choosing Open.
On Windows and Linux, SolidCraft detects a connected 3Dconnexion SpaceNavigator or SpaceMouse through its multi-axis HID interface. On Linux it reads /dev/hidrawN directly, so the logged-in user needs device access — the README suggests a udev rule adding the uaccess tag, for example /etc/udev/rules.d/70-3d-mouse.rules matching vendor id 256f. The Flatpak sandbox does not expose hidraw devices, so the 3D mouse only works with native builds there.
Community reaction: kernel choice, AI-written code and longevity
The Hacker News discussion focused less on features and more on three questions: whether building on the truck kernel is viable, whether AI-assisted development can carry a CAD kernel to maturity, and whether an AI-generated CAD project will still exist in five years.
Commenter bruckie identified the kernel and framed the difficulty:
"Looks like this uses the Truck modeling kernel... Truck seems cool, but creating a b-rep kernel is a phenomenal amount of work. Given that, I'm curious how quickly SolidCraft will mature."
The same commenter noted that ttouch previously built the browser CAD tool CADmium on Truck, then later built CADara on OpenCASCADE.
phkahler, a SolveSpace developer, argued the hard problems will not be solved quickly and suggested an alternative strategy:
"I don't see this moving very fast. On Solvespace we recently had a bunch of commits by Claude to fix NURBS boolean issues. The analysis was actually very impressive and most of the fixes were accepted after a lot of review by multiple experts on the code. I don't see this project getting far on the hard problems they still have open. IMHO they should have had AI convert OCCT kernel to rust, or just wrap it and use as-is."
The same commenter added that SolveSpace is close to a 3.3 release including those AI-assisted fixes, and that a Claude-written GTK4 port branch — a migration volunteers had previously failed at — is close to merging.
zamalek raised the durability concern directly:
"What concerns me about moving to AI-generated software is that CAD files have extreme longevity. Will the project be active in 5 years?"
Several commenters compared SolidCraft to existing open-source options. mijoharas described trying a FreeCAD MCP and OpenSCAD with an agent and finding both slower than modelling manually, with the key complaint that AI-generated geometry was not easy to edit afterwards. InsidiousWombat reported better results skipping MCP entirely and having the LLM write FreeCAD Python directly. wccrawford asked whether SolidCraft avoids the long-standing FreeCAD problems that occur when parameters are changed. jpettersson, a former heavy Fusion 360 user, said hobby-level modelling in SolidCraft seemed very capable.
On positioning, carra noted the UI resembles Autodesk Inventor or Solid Edge, and Fabricio20 noted the project is separate from the similarly named CadCraft. brunoborges asked whether the post would have received as much attention without "in Rust" in the title. maidaman highlighted the browser build as the practical win: "Can actually use it at work without asking IT."
Two gaps were raised that the README does not address. rts-gordon asked whether 3D printing functionality is supported, and androiddrew wrote simply: "Ok CAD is great but I want CAM." u8080 raised the risk of the project being shut down, and larodi argued that the broader value of agent-controllable open tools like this is as links in automation chains that commercial vendors restrict through licensing.
What to watch
The README points to docs/features.md for the commands SolidCraft has by area, ROADMAP.md for status and plans, and GitHub issues for open work and known bugs. The project explicitly invites contributions through CONTRIBUTING.md, which documents the build and test process, the code map, the clean-room and licence rules, and where help is wanted most.
Sources
Related
- Project
- Project
- Project
- Project
- Dispatch