Skip to content

SolidCraft v0.7.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 03:38
a9879fa

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).

Why 0.7: this is a minor bump because the design file format moved to version 15 (sketches
on cylinder caps and sheet metal panels need new references), and because it adds new features.

What's new

  • Sketching on stacked extrudes works again. Creating a sketch on the top face of an extrude
    stacked on another failed with "operation failed" since 0.3
    (#489). It's fixed, and every flat face
    of the test models is now checked for this on every change.
  • Select Other: hold or right-click to pick something hidden under something else; click
    again to cycle through what's underneath.
  • Tabs are named after their file instead of "Untitled".
  • Modelling: a flange angle and height per edge, Patch fills non-planar loops, sketches on
    cylinder caps and on sheet metal faces, and a feature rename updates everything that refers to
    it.
  • Fixes: revolve with edges on the axis, shell and fillet with small rounds, Join keeps face
    attachments, and STEP export writes each lump of a body as its own solid.
  • Navigation and UI: orbiting from empty space turns around the visible geometry, Ctrl+drag
    orbits in every preset, toolbar drops land across labels and gaps, Combine previews before OK,
    and sketch constraints accept the sketch's own x / y axes.
  • Opening a design reads its metadata and preview through a bounded, seekable reader; the docs
    and web app have link preview cards.

File format. Designs are now format 15 (solidcraft/15). SolidCraft 0.6 and older can't
open designs saved by 0.7, as a container or as JSON; keep a copy of a file you may still open
in 0.6. Files from every earlier version still open in 0.7.

Known limitations

  • Some faces still need the fixed-plane fallback for sketches: side faces Join merged from two
    extrudes (#491), faces split by a later
    feature (#492), Cut walls and chamfer
    faces (#493), faces after Revolve,
    Offset Face or Boss (#494) and sheet
    metal thickness faces (#495).
  • Cutting a coaxial cylinder from a thin disc can lose a little volume
    (#500); an edge flange with different
    per-edge angles leaves gaps at the corners
    (#501).
  • More in ROADMAP.md.

Upgrading from 0.5 or earlier. 0.6 renamed SolveCraft to SolidCraft and made the zip
container the default save format. .solvecraft designs, old settings folders and
SOLVECRAFT_* variables are still picked up, and solvecraft-cli still forwards to
solidcraft-cli. Want plain JSON? Use File ▸ Save As JSON… or --save design.json. On
macOS, replace SolveCraft.app with SolidCraft.app. Details:
compatibility notes.

Documentation, the browser app and the Flatpak feed use the SolidCraft project Pages URLs.

Which file?

  • Windows: SolidCraft-0.7.0-windows-x64.exe runs as is. Or install the .msi, or unzip the
    -portable.zip (x64, x86 and arm64).
  • macOS 11+ (Apple silicon and Intel): open the .dmg and drag SolidCraft.app onto Applications.
    The CLI is in solidcraft-cli-0.7.0-macos-universal.zip.
  • Linux (x86_64 and aarch64, glibc 2.35+): the .AppImage (chmod +x, then run it), the
    .deb or .rpm, the .flatpak (flatpak install --user <file>), the .snap
    (sudo snap install --dangerous <file>, or sudo snap install solidcraft from the Snap Store), or the .tar.gz.
  • FreeBSD: tar -xzf solidcraft-0.7.0-freebsd-x86_64.tar.gz --strip-components 1 -C /usr/local.
  • Web: solidcraft-web-0.7.0.zip is a static site to host yourself.
  • SHA256SUMS.txt: sha256sum -c SHA256SUMS.txt --ignore-missing.
  • Files without a version in the name (solidcraft-windows-x64.msi, solidcraft-linux-x86_64.AppImage, …)
    are the same packages under fixed names, for download links that always fetch the latest release.

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

Single-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.

What's Changed

  • fix(ui): put Point on the default sketch toolbar by @0xlillith in #445
  • fix(ui): accept toolbar drops across panel labels and gaps by @0xlillith in #454
  • fix(kernel): revolve with edges on the axis is built around the origin, then moved (#450) by @Mqrius in #452
  • fix: write each lump of a body as its own STEP solid by @NOWN-DEV in #455
  • fix: fit the plane of a thin sewn face about its own centre by @NOWN-DEV in #441
  • Join keeps exact face attachments on faces it leaves unchanged (#420) by @jyviko in #453
  • Sketch constraints accept x / y for the sketch's own axes by @jyviko in #448
  • feat: edge flanges with their own angle and height per edge by @NOWN-DEV in #447
  • docs: link preview cards for the docs site and web app by @bherbruck in #457
  • Orbit from empty space turns around the visible geometry by @bherbruck in #464
  • docs: describe the sketch solver as it is by @jyviko in #475
  • Ctrl+left drag on empty space orbits in every navigation preset by @jyviko in #471
  • fix: sketches on planes built from the model can project, intersect, include and hold text by @NOWN-DEV in #459
  • Read design containers through a bounded seekable reader (#303) by @0xlillith in #462
  • Sketch on a cylinder primitive's caps; format 15 by @jyviko in #460
  • feat: sketches on a sheet metal face attach to its panel by @NOWN-DEV in #474
  • Patch fills non-planar edge loops with one smooth face (#250) by @jyviko in #472
  • fix(ui): draw sketch constraint glyphs in red by @wdunn001 in #414
  • Note sheet metal panel anchors under format 15 by @bherbruck in #482
  • fix: shell a body whose curved edge is rounded smaller than the wall by @jyviko in #476
  • fix: report every fillet refusal of a radius too big as too large by @jyviko in #477
  • fix(ui): the Combine dialog previews without an error, so OK is enabled (#480) by @Mqrius in #481
  • Name untitled designs after their file by @bherbruck in #483
  • fix(kernel): revolving adjacent profiles on the axis makes no zero-area faces by @Mqrius in #490
  • Fix feature rename references by @onenewcode in #486
  • README demo for 0.6: a Raspberry Pi 4 case by @bherbruck in #504
  • Select Other: pick what lies under something else by @bherbruck in #503
  • Fix sketching on the top face of a stacked extrude (#489) by @bherbruck in #505
  • Release 0.7.0 by @bherbruck in #508

New Contributors

Full Changelog: v0.6.0...v0.7.0