Repository navigation
SolidCraft v0.5.0
SolidCraft is open-source parametric 3D CAD in Rust: sketch, constrain, extrude, and change a
parameter to watch the timeline rebuild. Documentation
· try it in the browser ·
contributing ·
issues. AI agents can model with it over MCP:
solidcraft-cli mcp (how).
Highlights since v0.4.0
This is a minor release: it adds new compatible capabilities. Binaries and downloads are now named SolidCraft (solidcraft, solidcraft-cli).
- Constructive sketch solving and live drag: edits keep their solution; value edits that would fold a sketch are refused.
- 3D mice on Linux and six-axis devices.
- OpenSCAD navigation preset.
- Driven dimensions: a dimension that would over-constrain a sketch is placed as a driven dimension.
- Dimension type is picked from where its text is placed.
- Toolbar drop-downs scroll when taller than the window.
- macOS app packaged as SolidCraft.
- Groundwork for T-spline bodies.
Fixes
- Sheet-metal holes next to two flanges.
- Unfolding after a parameter change.
- Sliver-face classification.
- Face counts with tangent holes.
- Projection of faces split by hidden seams.
- Loop blends on non-line seams.
- Unsupported anti-aliasing no longer stops startup.
Behaviour changes
- Saved designs now store the solved state of sketches.
- A value edit that would fold a sketch is refused with a message.
Known issues
- None from the reference suite (76/76 pass).
Thank you
Thanks to @jyviko, @pablopeza, @vitalibr, @palaniraja, @tbreckle, @jochenhammes, @NOWN-DEV, @Nathan-Dane and @jonaswre for fixes, features and regression tests in this release, and welcome to our new contributors.
Renamed to SolidCraft. Downloads, installers and programs now carry the SolidCraft name:
the desktop app is solidcraft, the command line solidcraft-cli. solvecraft-cli is still
installed as a deprecated alias that forwards to solidcraft-cli (it prints a one-line note on
stderr), so scripts and MCP setups such as claude mcp add solvecraft -- solvecraft-cli mcp
keep working; new setups use claude mcp add solidcraft -- solidcraft-cli mcp. Existing designs
open as before. Upgrades: the .msi upgrades an earlier install in place (it now installs to
Program Files\SolidCraft); the solidcraft .deb/.rpm replaces the old solvecraft
package; the Flatpak app ID ai.storyteller.solvecraft is unchanged, so Flatpak updates
continue; earlier AppImages still find updates.
Which file?
- Windows:
SolidCraft-0.5.0-windows-x64.exeruns as is. Or install the.msi, or unzip the
-portable.zip(x64, x86 and arm64). - macOS 11+ (Apple silicon and Intel): open the
.dmgand dragSolidCraft.apponto Applications.
The CLI is insolidcraft-cli-0.5.0-macos-universal.zip. - Linux (x86_64 and aarch64, glibc 2.35+): the
.AppImage(chmod +x, then run it), the
.debor.rpm, the.flatpak(flatpak install --user <file>), or the.tar.gz. - FreeBSD:
tar -xzf solidcraft-0.5.0-freebsd-x86_64.tar.gz --strip-components 1 -C /usr/local. - Web:
solidcraft-web-0.5.0.zipis a static site to host yourself. SHA256SUMS.txt:sha256sum -c SHA256SUMS.txt --ignore-missing.
Updating macOS from SolveCraft.app: quit the app, rename the existing app in
Applications to SolidCraft.app, then drag the new app from the DMG onto Applications
and choose Replace. If both names are already installed, move the old SolveCraft.app
to the Trash. Remove any Dock shortcut with the old name and pin the new app. Designs
and settings are unchanged. The DMG includes these instructions.
For Flatpak feed installation and updates, add Flathub for the required runtime before
installing SolidCraft; keep both remotes in the same user installation:
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --user --if-not-exists solidcraft https://bherbruck.github.io/solidcraft/flatpak/solidcraft.flatpakrepo
flatpak install --user solidcraft ai.storyteller.solvecraft
flatpak run ai.storyteller.solvecraftSingle-file .flatpak bundles include the runtime repository address; missing runtimes
still need an internet connection. Linux installation details.
The builds aren't signed yet. On macOS, right-click SolidCraft.app in Applications and choose
Open the first time (or run xattr -dr com.apple.quarantine /Applications/SolidCraft.app).
On Windows, SmartScreen may say "Windows protected your PC": More info, then Run anyway.
Licences are built in (Help ▸ About ▸ Licences, solidcraft-cli licences); the packages also
install THIRD-PARTY-LICENSES.txt. Known limitations:
ROADMAP.md.
What's Changed
- Loop blends: accept straight wall seams that are not lines by @pablopeza in #335
- Release docs: refresh Cargo.lock with cargo update --workspace --offline by @bherbruck in #348
- feat(sketch): live drag that keeps its solution, ended by sketch.drag_end by @jyviko in #341
- feat(sketch): constructive solving ahead of the numeric solver by @jyviko in #339
- T-spline core library and sheet bodies (#250, step 1) by @jyviko in #337
- openscad navigation by @palaniraja in #211
- Graphics: an anti-aliasing the device can't do no longer stops SolidCraft from starting by @tbreckle in #329
- Keep a zoomed-in profile's hover fill: count the slabs each edge crosses by @vitalibr in #336
- 3D mouse on Linux (hidraw) and devices that report all six axes in report 1 by @jochenhammes in #343
- XZ plane: regression tests for the +Y orientation and the format 6 migration (#78) by @bherbruck in #353
- fix: unfold sheets shrunk by a parameter change by @NOWN-DEV in #349
- Pick a horizontal or vertical dimension from where its text is placed by @vitalibr in #345
- Sheet metal: cut a hole beside two adjacent edge flanges (#296) by @bherbruck in #355
- Project: faces split by hidden seams project whole by @pablopeza in #352
- CI: shard tests across 4 runners; heavy tests on main and nightly by @bherbruck in #350
- Face counts: no phantom sphere/freeform faces after a blind cut inside a cylinder (#308) by @bherbruck in #357
- fix(macos): ship SolidCraft.app with matching bundle metadata by @Nathan-Dane in #354
- Toolbar drop-downs scroll when taller than the window by @pablopeza in #360
- Place a dimension that would over-constrain the sketch as a driven one by @vitalibr in #366
- fix(kernel): fillets that end in faces at an angle or across two faces by @jyviko in #362
- fix(doc): a pattern repeats a fillet on the edges it found, not its picks by @jyviko in #363
- Tangent hole contacts split no faces, consistently (#307) by @bherbruck in #364
- Version 0.5.0 by @bherbruck in #376
- test: failing regression test for #368 (ignored until fixed): One extrude cutting many circles from one sketch still scales super-linearly by @jonaswre in #377
- test: failing regression test for #370 (ignored until fixed): A stored fold fails on recompute when a parameter change moves its fixed point off the sheet by @jonaswre in #378
- test: failing regression test for #372 (ignored until fixed): Raising a pattern's count after renaming a copy gives the new copy the freed name by @jonaswre in #380
- test: failing regression test for #371 (ignored until fixed): sheet.fold still accepts a fixed point far above the sheet by @jonaswre in #379
- test: failing regression test for #373 (ignored until fixed): A profile added after a named multi-profile extrude gets a generic BodyN name by @jonaswre in #381
- test: failing regression test for #374 (ignored until fixed): A feature reply doesn't say which bodies the feature created by @jonaswre in #382
- fix: number a profile added after a named multi-profile extrude after body_name (#373) by @jonaswre in #385
- Release under the SolidCraft name: binaries, assets and installers by @bherbruck in #383
New Contributors
- @palaniraja made their first contribution in #211
- @jochenhammes made their first contribution in #343
- @NOWN-DEV made their first contribution in #349
- @Nathan-Dane made their first contribution in #354
Full Changelog: v0.4.0...v0.5.0