bherbruck/solidcraft: SolidCraft: an open-source parametric 3D CAD utility inbuilt pure Rust. Desktop, internet, and automation by MCP. · GitHub


An open-source parametric 3D CAD utility inbuilt pure Rust.

Sketch, constrain, and construct solids with a parametric function timeline. Change a dimension
and watch your mannequin rebuild. Run it in your desktop, in your browser, or let AI brokers
mannequin by the built-in MCP server.

SolidCraft 0.6: model a Raspberry Pi 4 case from an empty design: a sketch dimensioned with parameters, extrude, fillets and shell, standoffs patterned on the board's mounting holes, port cut-outs, vent slots, a colour and a height change in Parameters

A Raspberry Pi 4 case 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 gap rectangle, port cut-outs, vent slots and a color, then top 24 → 32 mm in Parameters and all of it rebuilds. 6× playback. Full video, recorded with the demo script.

Download for Windows
Download for macOS
Download for Linux
Get it from the Snap Store
Try it in your browser

The downloads aren’t signed but. On Windows, if SmartScreen warns you, select More information, then
Run anyway. On macOS, the primary time, right-click SolidCraft in Applications and select Open.

Older variations, checksums and different codecs are on the releases page.
Install particulars, upgrading from earlier builds and constructing from supply are in
Getting started.

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

Status: early however usable for easy components. 75 of 76 public reference components
match their analytic or FreeCAD-computed quantity, space, centre of mass and bounding field
(docs/oracle.md); the opposite is a tracked bug.
These checks don’t set up full geometric or workflow equivalence. The instructions SolidCraft has
are listed by space in docs/features.md; standing and plans are in ROADMAP.md.
Open work and identified bugs are in GitHub issues,
and assistance is welcome: see CONTRIBUTING.md.

  • Sketches on origin planes, offset planes or planar faces: strains, rectangles, circles,
    arcs, polygons, slots, ellipses, match/management splines, conics and textual content; building geometry,
    projection, trimming, fillets and chamfers, together with corners on the origin.
    New face attachments retain supported building identities and chosen occurrences;
    lacking sources expose an specific airplane restore workflow. See face attachments.
    Explicitly closed match splines and closed associative offsets use periodic C2 interpolation.
    Supported convex line-and-arc offsets retain their id when an inset consumes nook
    arcs, and linked extrusions comply with the present boundary. Breaking the affiliation freezes
    the boundary and retains present extrusions usable.
    Curve drawing and selecting adapt collectively to zoom and show scale, together with small circles
    at Fit and sketches in positioned elements.
  • Constraints and dimensions solved by our personal solver. Points the constraints repair relative
    to identified geometry are positioned precisely by building (loci intersections and rigid-cluster
    decomposition, after Owen 1991 and Fudos–Hoffmann 1997); Levenberg–Marquardt solves the remainder,
    and the rank of its Jacobian offers the remaining levels of freedom. Constraints: coincident,
    level on curve, horizontal/vertical, parallel, perpendicular, tangent, curvature (G2), equal,
    concentric, collinear, midpoint, symmetry, repair; linear, aligned, horizontal, vertical,
    point-to-line, radius, diameter, angle, arc sweep, arc size and slot size dimensions pushed
    by parameters. Over-constraining edits are rejected; absolutely constrained geometry turns black.
    Dragging solves the sketch each body and rebuilds the mannequin as soon as, when the drag ends.
    Select a line or its two endpoints, sort its dimension and press Enter to commit one undo
    step. Fit retains sketch geometry away from the palette and navigation controls.
  • Profiles discovered robotically, together with areas break up by strains and holes inside outlines.
    Newly captured full adaptive boundaries retain their outer and gap supply identities
    when spline span counts change. Partial or ambiguous boundaries don’t qualify.
  • Features on a parametric timeline: extrude, revolve, sweep, loft, fillet/chamfer,
    shell, draft, holes, threads, patterns, mirror, break up, mix, transfer and building geometry.
    The timeline rebuilds incrementally; options could be edited, suppressed, renamed, reordered
    and deleted. Supported geometry and present limitations are described in ROADMAP.md.
    New revolves protect symmetric and two-sided angular placement throughout reversed axes;
    older designs retain their saved conference when reopened or edited.
  • Parameters and configurations with unit-aware expressions (2 * width + 5 mm,
    angle / 2), ordered guidelines, function suppression and per-row physique supplies/appearances.
  • Assemblies with nested elements and occurrences, joints, movement research, contact units,
    interference and material-aware mass properties. Recorded physique transfers protect modelling
    historical past and global community placement; 3D sketch wires retain their coordinate frames by edits.
  • Sheet steel with flanges, hems, fold/unfold/refold, materials cutouts, flat patterns,
    retained shallow prismatic pockets, precise line/arc/circle DXF outlines and bend tables;
    plastic enclosure options and guidelines. Pocket depth and aspect survive unfold/refold and seem
    individually from through-hole outlines within the flat preview and DXF.
  • Files: design containers (.solidcraft) with lossless binary mesh payloads;
    plain JSON stays supported for opening, Save As and export. Desktop Open can present a saved
    provisional image from heat geometry caches whereas rebuilding earlier than modifying; caches by no means
    change the parametric design. Export to STEP (AP242 with physique names, colors and
    elements as assemblies; revolved faces as native planes, cylinders, cones, spheres and tori),
    IGES 5.3 (manifold strong B-reps with names and colors), 3MF, STL (binary/ASCII) and OBJ;
    3MF, STL and OBJ import as mesh our bodies (they render, measure, transfer and export; strong options
    want B-rep our bodies). Convert Mesh reconstructs supported closed constant-section components
    as parametric solids with planar and round cylindrical faces;
    STEP import (AP203/AP214/AP242 solids, assemblies, items, names, colors) and IGES import
    (manifold strong B-reps, or trimmed and bounded surfaces sewn into solids) as a base function
    that later options construct on — open a .step/.stp/.igs/.iges file, insert one right 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 instruments, function dialogs, command palette, and a JSON-lines
    management channel so brokers and checks can drive it.
    Feature errors and Help can open an editable Create Issue draft with related context
    and an non-compulsory reviewed screenshot; opening GitHub doesn’t submit the report.
  • Headless CLI solidcraft-cli: run command scripts, measure (quantity, space, centre of mass,
    face/edge/vertex counts), export, render PNG snapshots and replay reference recipes.
  • MCP server solidcraft-cli mcp: AI brokers mannequin, measure and take a look at components headless or
    within the operating app (see beneath).
cargo run --release -p solidcraft -- --sample          # desktop app with a pattern half
cargo run --release -p solidcraft-cli -- instructions      # 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 -- half.step          # open a STEP file as a brand new design
cargo run --release -p solidcraft-cli -- eval half.step # measure an imported STEP file
cargo xtask ci                                          # fmt, clippy, checks, belongings, layers, wasm

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

On Windows and Linux, SolidCraft detects a related 3Dconnexion SpaceNavigator or SpaceMouse by its
multi-axis HID interface. Move the cap to pan and zoom, and tilt or twist it to rotate the 3D view.
While modifying a sketch, the cap pans and zooms with out altering the sketch view. The Navigation
web page in Preferences has an on/off swap and a pace management for the 3D mouse.

On Linux SolidCraft reads /dev/hidrawN immediately, so the logged-in consumer wants entry to the
gadget. A udev rule that provides the uaccess tag does that, for instance
/and so forth/udev/guidelines.d/70-3d-mouse.guidelines for units 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)
as a substitute of matching each Logitech gadget. Reload with sudo udevadm management --reload && sudo udevadm set off, then replug the gadget. The Flatpak
sandbox doesn’t expose hidraw units, so the 3D mouse solely works with native builds there for now.
Devices that ship all six axes in HID report 1 (some do-it-yourself ones do) are recognised from their
report descriptor, so that they work as nicely.

In the browser: cd apps/solidcraft-web && trunk construct --release --public-url ./ (WebGPU, or
WebGL2 with ?webgl; ?pattern opens the pattern half).

A script is a JSON record of instructions, the identical ones the UI runs:

{"instructions": [
  {"command": "sketch.create", "params": {"plane": "XY"}},
  {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 30]}},
  {"command": "strong.extrude", "params": {"distance": 20}},
  {"command": "strong.fillet", "params": {"edges": [[0, 0, 10]], "radius": 3}}
]}

solidcraft-cli mcp is a Model Context Protocol server on
stdio. Headless it runs its personal design session; with --connect 127.0.0.1:PORT it drives the app
began with solidcraft --control PORT, so you possibly can watch the agent mannequin. Tools:
list_commands, execute, batch, inspect_design, measure, body_topology,
set_parameter, screenshot (returns the picture), export, undo, redo, new_design, open,
save. Claude Code: claude mcp add solidcraft -- solidcraft-cli mcp. Details, shopper
configuration and an instance session: docs/mcp.md.

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 function timeline and its incremental analysis
L3 io design recordsdata, STL/OBJ/STEP/3MF export, STEP and 3MF/STL import options
L4 engine the session and the command registry (every thing is a command)
L5 ui-egui, mcp the swappable desktop entrance finish; the MCP server (headless or bridged to the app)
apps solidcraft, solidcraft-cli desktop app, headless CLI

Coming from Autodesk Fusion? SolidCraft makes use of acquainted parametric CAD workflows: constrained
sketches, strong options, an editable timeline, parameters and assemblies. See the
roadmap for supported operations and present limitations.

See CONTRIBUTING.md: the way to construct and take a look at, the code map, the clean-room
and licence guidelines, and the place assist is needed most.

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

SolidCraft is impartial. Behaviour is designed from public documentation, common CAD
conventions and consumer suggestions. Reference checks use analytic values and open-source instruments.
SolidCraft just isn’t affiliated with, sponsored by or endorsed by Autodesk. Autodesk and
Fusion are emblems of Autodesk, Inc.



Source link