github tangency-labs/solidcraft v0.21.0
SolidCraft v0.21.0

3 hours ago

Designs saved in 0.21.0 use format 34 and don't open in 0.20.0 or older.

SolidCraft is open-source parametric 3D CAD in Rust: sketch, constrain, extrude, and change a parameter to watch the timeline rebuild. Website · documentation · try it in the browser · Discord · issues.

Standing imports up

  • STEP and IGES files ask before they turn: a file is never turned without asking. A SolidWorks file gets the stand-up offer with "Stand it up" as the default and a line saying why. (#5655).
  • Turn Up Axis: right-click a component or imported part › Turn Up Axis › "Y up → Z up" or "Z up → Y up", in one undo step, any time after import (#5655).
  • Sketch after standing up: a sketch on an origin plane picked in the view uses the plane as shown after the import was stood up (#5659).

Big assemblies

  • Hover and selection highlights of whole bodies reuse the model's own triangles: on a 147-body assembly, hovering the top Browser row took 9 ms instead of 519 ms and copies no triangles instead of 70 MB (#5109).
  • Parameters stays responsive in designs with hundreds of features (#4549); the Keyboard Shortcuts page draws only the rows on screen (#4919).
  • Model cache: a design too big for its file keeps a thinned cache instead of none, so it reopens without evaluating everything (#4882).
  • Agents: a whole-design measure reads a copy off the window thread (#4614).

New

  • macOS menu bar: File, Edit, Window and Help in the native menu bar (#4531).
  • Section Analysis has a Hatch option; off, cuts show in each body's own colour (#4565).
  • History: drag features across the history marker in one step, with clearer drop feedback (#4938).
  • Pattern and mirror take a rib as the source (#4667).
  • Expressions accept a leading =, so a fillet radius can be =d3 (#4686).
  • Sketch circular patterns keep a Quantity given as a parameter (#4607).
  • Agent chat serves the bundled skills' reference through an MCP tool (#4970); unknown command ids suggest the closest ones (#4915); solidcraft-cli bench-assistant runs the standard Assistant model test (#4930).

Fixed

  • Sketch: Symmetry slides a dimensioned shape onto the axis (#4626); a point put on a midpoint or curve snap is held there (#4745); Break Offset Association is offered for offsets of lines (#4920).
  • Modeling: an intersect that would leave nothing is refused instead of deleting the body (#5303); intersection edges no longer panic below the kernel's tolerance (#4650); renaming a body keeps the names of siblings a later feature removed (#4904).
  • Sheet metal: Convert to Sheet Metal connects a bend picked on its tangent edge, on rotated parts too (#4630); the Hem arrow points the way the hem builds (#4836); Flange on a plain solid says how to start sheet metal (#4789).
  • Dialogs: Combine takes bodies clicked in the Browser (#4766); Move's value box follows the dragged axis, and Tab steps through X, Y, Z (#4788); expression suggestions stay closed while another control is dragged (#4590).
  • Measure reports obtuse angles at a shared corner (#4634); a body's material and density follow one rule (#4785).
  • Mesh: Convert Mesh works without activating the mesh's component first (#4613); leftover links to the old Mesh tab are gone (#4471).
  • Shortcuts: a sketch tool and a model command can share a key (#4781).
  • Units of new designs apply to the empty design already open (#4835).
  • Web: a trackpad swipe pans instead of zooming (#4834).
  • Scripts and agents: imports through the app keep their matrix, name and options (#4746); the timeline marker refuses a negative position (#4749).
  • French: pattern tools are "Répétition", not "Réseau" (#4751).
  • Windows checkouts: the icon audit ignores CRLF line endings (#4960).

Also new since 0.20 (from rc.1)

Rendering and graphics

  • Cached viewport pictures: a repaint over a still view reuses the last picture, and the scene draws into its own target under a 1× window pass. On a 147-body, 8.5-million-triangle assembly, GPU time while moving the pointer over empty space dropped from 1752 ms to 1006 ms over 8 s (#5187).
  • AMD on Direct3D 12: bodies draw again with 4× anti-aliasing; the ground shadow no longer sends every frame through the transparency path (#5255).
  • OpenGL renders the scene at 1x anti-aliasing again, as it did before the cached pictures change (#5605).
  • A lost GPU stops drawing instead of crashing, for example when Windows resets the graphics driver (#4229).
  • Idle GPU: an untouched window draws nothing with the frame-rate readout on; it kept an M2 Max at about 91% GPU before (#5165).
  • Readouts: the frame-rate readout and surface-analysis legend stay above the floating History card (#4129).
  • Mesh bodies measure their size once, when made (#4663).

Interface

  • App icon: the borderless mark everywhere, from the Windows installer to the Linux icons (#5465, #5548).
  • Home: a recent design's location shows in one tooltip, not two (#5208).
  • Web: Ctrl+Tab and Ctrl+Shift+Tab switch browser tabs again (#5350).
  • Flatpak: the agent chat says why no agent is found and how to allow one (#4769).
  • Assistant: Anthropic-compatible API agents can be added beside OpenAI-compatible ones (#5017).
  • Browser: Shift+click above the anchor selects the whole range (#4997).
  • Timeline: delete several selected features at once, Shift+click ranges, and delete after the history marker (#5006).
  • Agents: the agent cursor follows the agent's own pointer input (#5162).

Modeling

  • Extract to File: a component modelled in an assembly can move into its own linked design, from its right-click menu (#5113).
  • Inserted STEP parts: a sketch on an inserted part's face joins and cuts that part, Through All too, instead of making a separate body (#5115).
  • Body names: a renamed body keeps its number, and the next body doesn't take the freed name (#5053).
  • Sketch drag: a linkage with redundant parallelogram constraints still moves (#4983).
  • Robustness: opening a design range-checks integer-valued coordinates (#5026); snap fits refuse sizes too small to build (#5027); extrude and loft refuse duplicate profile indexes (#5028); the MCP stdio server bounds request lines before reading them whole (#4972).
  • Motion Trace: kept traces regenerate when their links or driving conditions change (#5270).
  • Plane at Angle takes a planar face as its base (#1956).
  • Extrude without a profile selection keeps the holes of nested loops instead of filling them (#5176).
  • Joints: interactive joint work skips redundant analysis (#5186); a joint origin's name given as a face says to pass it as the origin (#5179).
  • Scripts: component.create refuses parameters it does not take (#5178).
  • Formats: one table names every import and export format, its extensions and options (#5217).

Compatibility

0.21.0 writes design file format 34 (0.20.0 wrote 31). It opens every earlier design, but 0.20.0 and earlier refuse a design saved by 0.21.0.

Thanks

Thank you to everyone who contributed: @56steve, @CamWight, @cfaulkingham, @DuBearte, @dudedagger42, @flyboy-byte, @gsrunion, @javl, @martinpalsson, @oursland, @peppelorum, @raykholo, @Reefwalker, @rlartot, @SS-EN and @SychPL.

Install

Upgrading from 0.7 or earlier. 0.8 changed the Linux app ID to ai.storyteller.solidcraft:
flatpak update offers to replace the old app, and the .deb, .rpm and AppImage remove the old
menu entry.

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.21.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.21.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.21.0-freebsd-x86_64.tar.gz --strip-components 1 -C /usr/local.
  • Web: solidcraft-web-0.21.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://docs.solidcraft.io/flatpak/solidcraft.flatpakrepo
flatpak install --user solidcraft ai.storyteller.solidcraft
flatpak run ai.storyteller.solidcraft

A remote added from the old bherbruck.github.io address no longer finds updates: run
flatpak remote-modify --user --url=https://docs.solidcraft.io/flatpak/repo/ solidcraft, then
flatpak update --user.

Flatpak installs from 0.7 or earlier use the old ID ai.storyteller.solvecraft: flatpak update --user
offers to replace it with ai.storyteller.solidcraft, and settings move along.

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.

Don't miss a new solidcraft release

NewReleases is sending notifications on new releases.