solidcraft is a free, open source design & prototyping project written in Rust and released under Apache-2.0. It has 672 GitHub stars, 56 forks and 64 open issues, and was last pushed 3 hours ago. On this registry it ranks #87 of 99 tracked projects in Design & Prototyping, with 5 head-to-head comparisons available.

What is solidcraft?

SolidCraft is an open-source parametric 3D CAD application written in pure Rust, aimed at engineers, makers, and developers who want to design parts on the desktop, in the browser, or through AI-agent automation.

What it is

SolidCraft is a parametric solid modeling tool in the Rust ecosystem: you sketch on planes and faces, apply constraints and dimensions, and build solids that live on a parametric feature timeline, so changing a dimension rebuilds the model. It ships as a desktop application (including a Linux Flatpak), a browser app, and a CLI, all built on the same core, with a built-in MCP server that lets AI agents construct models programmatically. The project is Apache-2.0 licensed and is described in its README as early but usable for simple parts.

The concrete problem it addresses is the cost and lock-in of mainstream parametric CAD for people who want direct control over their modeling kernel, their data, and their automation surface. Its geometry kernel is written in Rust, its sketch constraint solver is its own implementation — a damped Gauss–Newton solver with degree-of-freedom analysis — and models are stored in a .solvecraft design format. Profiles in sketches are found automatically, and the README reports a historical benchmark of 76 of 76 reference parts matching volume, area and topology (docs/oracle.md), while noting that these checks do not establish complete geometric or workflow equivalence.

Key capabilities

  • Sketch on origin planes, offset planes, or planar faces with lines, rectangles, circles, arcs, polygons, slots, ellipses, fit/control splines, conics and text, plus construction geometry, projection, trimming, fillets and chamfers.
  • Solve constraints with a built-in damped Gauss–Newton solver covering coincident, horizontal/vertical, parallel, perpendicular, tangent, equal, concentric, collinear, midpoint, symmetry and fix, with over-constraining edits rejected and fully constrained geometry shown black.
  • Drive dimensions from named parameters so editing a value rebuilds the part — the README's demo changes width from 80 to 100 mm and wall thickness from 2 to 3 mm in Parameters and watches the model rebuild.
  • Detect sketch profiles automatically, and maintain associative links so linked extrusions follow the current boundary; breaking the association freezes the boundary while keeping existing extrusions usable.
  • Export and interchange through STEP, and work with BREP geometry (topics: step, brep).
  • Run headless automation through solvecraft-cli and let AI agents model through a built-in MCP server.
  • Target the browser via WebAssembly, with a hosted web app and documentation published through GitHub Pages.

Who uses it and how

  • Hobbyists and product designers sketching enclosures — the README demo walks through a rounded electronics enclosure with a shell, a USB port sketched directly on a wall, and a four-boss mounting pattern.
  • Engineers iterating on simple parts whose dimensions change between revisions, relying on the parametric timeline and parameter table rather than redrawing geometry.
  • Developers embedding CAD in the browser, using the WebAssembly build and the published web app at the project's GitHub Pages site.
  • Teams and individuals automating modeling tasks through solvecraft-cli and the MCP server, letting scripts or AI agents construct and modify models.
  • Contributors extending feature coverage, with progress tracked openly in docs/parity.md, ROADMAP.md, and the project's 64 open issues.

Getting started

Install the Linux Flatpak from the SolidCraft application feed (with the Freedesktop runtime from Flathub), run the web app directly in the browser, or clone the Rust repository and build with Cargo; the exact commands live in the getting-started guide in the SolidCraft book.

How it compares

Among similar tools named in the project's own materials, SolidCraft sits alongside the broader Rust and WebAssembly CAD and 3D-modeling work identified by its topics (rust, wasm, parametric-cad, cad, 3d-modeling), distinguished by shipping desktop, browser, CLI and MCP surfaces from a single codebase. This registry's facts name no other specific comparable project, so SolidCraft stands on its own here.

When to use it — and when not

The project states plainly that its status is "early but usable for simple parts," so anyone expecting production-grade coverage of advanced workflows should look elsewhere until docs/parity.md and ROADMAP.md show the gaps closed; note also that it was recently renamed from SolveCraft, leaving legacy .solvecraft file extensions and solvecraft-cli identifiers in place while old-name Pages and Flatpak URLs are not maintained as permanent aliases. Because the benchmark covers 76 reference parts but the authors caution it does not establish complete geometric or workflow equivalence, validate critical geometry against your own reference before relying on it. With 64 open issues and a permissive Apache-2.0 licence, it suits self-hosters and experimenters who accept an actively evolving tool.

project readme (upstream, from github) — read inline

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. Part of the storytold "craft" family.

SolidCraft: draw a rounded electronics enclosure, sketch its USB port directly on a face, add four mounting bosses and resize it through Parameters

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.

Documentation: the SolidCraft book (user guide, developer guide and command reference; sources in docs/book), and the web app to try it in the browser.

Linux Flatpak installation needs the Freedesktop runtime from Flathub as well as the SolidCraft application feed. See install and launch commands.

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). These checks do not establish complete geometric or workflow equivalence. Feature coverage is tracked in docs/parity.md and ROADMAP.md. Open work and known bugs are in GitHub issues, and help is welcome: see CONTRIBUTING.md.

Name and compatibility

SolidCraft was previously called SolveCraft. The product display name and repository are changing; existing identifiers remain compatible: .solvecraft designs, solvecraft-cli, Cargo package names, settings/recovery locations and package IDs keep their existing names. Published 0.2.0 and 0.2.1 packages and demo recordings retain their original SolveCraft branding and filenames.

Use the SolidCraft documentation and web-app URLs above. GitHub redirects links to the renamed repository; old-name Pages and Flatpak URLs are not maintained as permanent aliases.

What works

  • Sketches on origin planes, offset planes or planar faces: lines, rectangles, circles, 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.
  • Constraints and dimensions solved by our own solver (damped Gauss–Newton with degree-of-freedom analysis): coincident, horizontal/vertical, parallel, perpendicular, tangent, equal, concentric, collinear, midpoint, symmetry, fix; linear, aligned, horizontal, vertical, radius, diameter and angle dimensions driven by parameters. Over-constraining edits are rejected; fully constrained geometry turns black. 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.
  • Profiles found automatically, including regions split by lines and holes inside outlines. Newly captured complete adaptive boundaries retain their outer and hole source identities when spline span counts change. Partial or ambiguous boundaries do not qualify.
  • Features on a parametric timeline: extrude, revolve, sweep, loft, fillet/chamfer, 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.
  • Parameters and configurations with unit-aware expressions (2 * width + 5 mm, angle / 2), ordered rules, feature suppression and per-row body materials/appearances.
  • Assemblies with nested components and occurrences, joints, motion studies, contact sets, interference and material-aware mass properties. Recorded body transfers preserve modelling history and world placement; 3D sketch wires retain their coordinate frames through edits.
  • Sheet metal with flanges, hems, fold/unfold/refold, material cutouts, flat patterns, 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.
  • Files: designs as JSON (.solvecraft), 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); 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).
  • Desktop app (egui + wgpu): toolbar with workspace tabs, browser, timeline, 3D viewport with 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.
  • Headless CLI solvecraft-cli: run command scripts, measure (volume, area, centre of mass, 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).

Build and run

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

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

On Windows, 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.

In the browser: cd apps/solvecraft-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)

solvecraft-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 solvecraft --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 solvecraft -- solvecraft-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 solvecraft, solvecraft-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.

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.

Frequently asked questions

Is solidcraft free to use?

solidcraft is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does solidcraft do?

SolidCraft: an open-source parametric 3D CAD application built in pure Rust. Desktop, web, and automation through MCP.

What is solidcraft written in?

solidcraft is primarily written in Rust. Its source is publicly available at https://github.com/bherbruck/solidcraft, and it has 672 GitHub stars.