Skip to content

Releases

SolidCraft v0.40.0-rc.3

Pre-release

Choose a tag to compare

@leomoon leomoon released this 09 Nov 00:45

This is a pre-release, for people who choose to test it. Designs saved in it use format 51 and won't open in 0.40.0-rc.2, rc.1 or stable 0.30.1, so keep a copy of anything you care about before you save it here. Like rc.1 and rc.2, it runs SolidCraft's modeling on the solidcore kernel.

The stable release is still 0.30.1. This pre-release isn't offered by the in-app update check, and solidcraft.io/app and the Flatpak feed stay on their current builds.

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

Kernel update

This build moves solidcore from 8ddce90 to a445bdaac6 (tangency-labs#13015).

  • More passes. 8 tests come off the known-failing list, which goes from 30 to 22 with none added. Among them: a variable round from r 2 to r 5 along a box edge and three rounds at a corner. The linear variable fillet in our reference designs passes too, and 5 fillet and chamfer kernel cases come off their own list.
  • One case got worse. A fillet kernel case that passed before is now on its known-failing list: at a bar corner where three edges are rounded, the fitted corner misses the curvature tolerance (4.0e-3 against 2.5e-3, solidcore#2697).
  • Chamfers changed. A tangent chain of chamfered edges is now one chamfer with one pair of offsets. Where the chain has an edge between planes the sizes hold on that edge. Where it has none they hold only where they're measured and drift elsewhere: on an elliptical rim asked for 1 and 2, the setbacks run from 0.01 to 1.95 and from 1.73 to 2.61. A distance-and-angle chamfer that would go past the wall is refused with the kernel's message, which isn't worded for users yet.
  • Our 170 graded reference models all build as recorded.
  • Boxes that only touch. The nightly boolean property tests now check that joining two boxes that touch only along an edge or at a corner gives the two solids touching there (tangency-labs#13015). They pass at the default number of cases.

What's new since rc.2

  • Designs from a newer SolidCraft open. A design saved by a newer version now opens with a notice on the status line instead of being refused (tangency-labs#12166). This applies from rc.3 on; rc.2 and earlier still refuse a design saved by rc.3.
  • Fillet: Mitre or Swept corners. Where two rounds turn round a sharp edge between them, such as the rounds along a boss's base at its upright edges, a constant-radius fillet can now end them at that edge and fill the corner with an exact swept piece. Mitre stays the default (tangency-labs#11498).
  • Closing a design stops its kernel work. In the desktop app, closing a design or replacing it in its tab stops the operations still computing for it (tangency-labs#11771).
  • Modeled threads run down to a flat face, with no uncut block in the last turn, so a nut can bottom out (tangency-labs#11782).
  • Hole: a hole on a face that another part touches drills its own part, not the other one (tangency-labs#12067).
  • Interference: Compute runs in the background, so the window no longer freezes and Windows no longer reports it as not responding (tangency-labs#11541).
  • Saving a design with many threaded holes keeps all of its saved states (tangency-labs#10601).
  • Revolve: an axis origin written as an expression is no longer read as zero (tangency-labs#10252). In a moved component, Edit Feature of a surface revolve now turns it about the axis you enter, not one shifted by the component's move (tangency-labs#12298).
  • Extrude Two Sides: Distance 2 has its own value box and arrow in the 3D view and stays on its side when Distance 1 changes sign (tangency-labs#11203).
  • Components: Capture All Positions no longer moves a transferred body twice when its source sketch is in the same component (tangency-labs#11364).
  • Sketch: hovering over a large sketch no longer slows down (tangency-labs#9614), dragging one of several selected sides no longer runs ahead of the pointer (tangency-labs#11324), and dragging a constrained line by its middle no longer stalls (tangency-labs#11714).
  • Crashes: on Windows a lost graphics device restarts the app instead of crashing it (tangency-labs#11109). A closed stderr pipe no longer crashes the app, CLI or MCP server (tangency-labs#10126). An exchange file with a curve that refers to itself is refused with an error naming the curve instead of closing the app (tangency-labs#11893).

Report problems

Open an issue with the design if you can, and say that you're on 0.40.0-rc.3. Report an Issue in the app fills in the details for you. Geometry that builds wrong, or a design that rebuilds differently than it did in 0.30.1, is what we most want to hear about.

New geometry kernel

Modeling runs on solidcore, a pure-Rust kernel, and it's the only kernel in this build. Booleans, fillets, shells and threads all go through it. There's no setting to go back.

  • Earlier designs rebuild their timeline on solidcore when they open. A design can come out a little differently, with different face or edge counts, and a feature that no longer builds reports an error.
  • Fillets may be slower than in 0.30.1 (reported by @jyviko).
  • We haven't measured speed or quality against 0.30.1 across designs, so this release makes no claim about either.

Known problems

22 tests in the test suite are on a known-failing list, each with its reason. What that means in use:

  • Variable-radius fillets: a radius law with a corner in it is refused (solidcore#430).
  • Other fillet cases: a taper that closes to a point, and a round ending in an earlier round, fail. A vertical edge after separate bottom rounds can be refused as smooth. The round at the foot of a boss isn't an exact torus, so Measure finds no radius on it. A G2 corner patch can bulge slightly past the box it rounds.
  • Shells: two shells in our sample of actions fail, one on a lid with ribs and one on a filleted, shelled box.
  • Chamfers: on a tangent chain with no edge between planes, the chamfer's offsets can drift away from the sizes asked (tangency-labs#13015).
  • Thicken: one reference design with a boundary loop thicken doesn't load (it fails at that step).
  • Holes: a 40 mm hole that touches a plate's edge at one point splits the plate into 2 bodies.
  • Meshes: planar faces get more triangles than before, so an exported STL of a box has 124 triangles rather than 12.
  • Changes from 0.30.1 that aren't in this build, because they relied on the display mesh and their exact replacements aren't written yet:
    • Extrude Cut To the far side of a curved wall (tangency-labs#8634).
    • Cosmetic tap markings looking for their cylinder only in nearby bodies, so they can be slower (tangency-labs#10303).
  • Not fixed yet: selecting a joining extrude in the timeline can still light round walls an earlier feature made. The fix merged to main relied on the display mesh, so it was left out of this build (tangency-labs#11286).

Compatibility

0.40.0-rc.3 writes design file format 51 (rc.2 wrote 50, and 0.30.1 writes 48). Format 51 adds 15 changes, among them bridged counterbores, locked canvases, swept fillet turns, glass roughness and dispersion, embedded surface textures, point clouds that remember their file and keep its segments and triangles, revolve axis origins as expressions, a point held along a curve, Plane at Angle by direction only, and fixed sides for a two-sided extrude. 0.40.0-rc.3 reads earlier format numbers, but 0.40.0-rc.2, rc.1, 0.30.1 and earlier refuse a design saved by it. From rc.3 on, a design from a newer SolidCraft opens with a notice instead (tangency-labs#12166).

Downloads

The files are the same kinds as in stable: .exe, .msi and portable .zip for Windows; .dmg for macOS; .AppImage, .deb, .rpm, .flatpak, .snap, .tar.gz and Arch packages for Linux; a .tar.gz for FreeBSD; and solidcraft-web-0.40.0-rc.3.zip, a static site to host yourself. Check them with sha256sum -c SHA256SUMS.txt --ignore-missing.

The macOS app is signed with a Developer ID and notarized. The Windows files are signed with a self-signed test certificate that Windows doesn't trust, so Windows may warn you. The other packages are unsigned.

Thanks

Thanks to 91 contributors since rc.2.

SolidCraft v0.40.0-rc.2

Pre-release

Choose a tag to compare

@leomoon leomoon released this 04 Nov 21:33

This is a pre-release, for people who choose to test it. Designs saved in it use format 50 and won't open in versions that read only up to format 49, including 0.40.0-rc.1 and stable 0.30.1, so keep a copy of anything you care about before you save it here. Like rc.1, it replaces SolidCraft's geometry kernel with solidcore.

The stable release is still 0.30.1. This pre-release isn't offered by the in-app update check, and solidcraft.io/app and the Flatpak feed stay on their current builds.

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

What's new since rc.1

  • A long operation in one design no longer stops other designs. In the desktop app, extruding a rectangle in a new design used to wait about 18 seconds behind a modeled thread still running in a closed design, and now takes under a second. The closed design's work keeps running in the background until it finishes, and its result is dropped. A long operation can still hold up the design you're looking at (tangency-labs#11684).
  • A 12 mm hole now takes an M12 thread. An automatic thread size in a hole now goes by the hole's nominal diameter first, so a 12 mm hole is M12 instead of M14, and a modeled M12 builds in it instead of being refused. To make room, the thread narrows the bore over the threaded length, and the feature's warning says so. A hole near no nominal diameter still goes by tap drill, and a thread saved in an earlier design keeps its size (tangency-labs#11651).
  • Align follows frames. Align can move bodies by a frame on the moving body and one on the target, and stays linked to them: the target can be a sketch point, the center of a sketch circle, arc or ellipse, or a joint origin on the model. When the target changes, the bodies follow (tangency-labs#7123).
  • Sketch dimensions: the first digit you type replaces the proposed value. Typing 400 over 40 mm could give 40040 mm before (tangency-labs#11214).
  • Point At Edge And Plane takes construction and origin axes as its edge (tangency-labs#11152).
  • Extruding round sketches: meshing a curved face got faster. In our timings, extruding 1,024 small circles went from about 51 to 39 seconds, on one machine under load (tangency-labs#11649).
  • Preferences: the Layout, Graphics, Design and Tools, Sketch, Navigation and 3D mouse, Shortcuts, Assistant and Plugins pages have new layouts, and the page list has its own icons. The settings and their defaults are the same (tangency-labs#10638, tangency-labs#10662, tangency-labs#10710, tangency-labs#10720, tangency-labs#10739, tangency-labs#10765, tangency-labs#11368).
  • Scripts and MCP: new commands inspect and change panels and layouts (tangency-labs#11454).
  • Translations: French gains 125 messages and Bosnian 78 (tangency-labs#11277).

Report problems

Open an issue with the design if you can, and say that you're on 0.40.0-rc.2. Report an Issue in the app fills in the details for you. Geometry that builds wrong, or a design that rebuilds differently than it did in 0.30.1, is what we most want to hear about.

New geometry kernel

Modeling now runs on solidcore, a pure-Rust kernel, and it's the only kernel in this build. Booleans, fillets, shells and threads all go through it. There's no setting to go back.

  • Earlier designs rebuild their timeline on solidcore when they open. A design can come out a little differently, with different face or edge counts, and a feature that no longer builds reports an error.
  • Fillets may be slower than in 0.30.1 (reported by @jyviko).
  • We haven't measured speed or quality against 0.30.1 across designs, so this release makes no claim about either.

Known problems

31 tests in the test suite are on a known-failing list, each with its reason. What that means in use:

  • Variable-radius fillets may fail on solidcore. A round from r 2 to r 5 along a box edge fails, including through the Fillet dialog, a linear variable fillet in our reference designs fails, and a radius law with a corner in it is refused.
  • Other fillet cases: a taper that closes to a point, and a round ending in an earlier round, fail. A later round at a corner where earlier rounds meet builds a different corner than the test expects, and a vertical edge after separate bottom rounds can be refused as smooth.
  • Shells and chamfers: a 2 mm shell of a box with every edge rounded r 1.5 fails, and so do some shells on a filleted part. A chamfer at a ball cut's rim makes no change instead of explaining why.
  • Thicken: one reference design with a boundary loop thicken doesn't load (it fails at that step).
  • Holes: a 40 mm hole that touches a plate's edge at one point splits the plate into 2 bodies.
  • Meshes: planar faces get more triangles than before, so an exported STL of a box has 124 triangles rather than 12.
  • Changes from 0.30.1 that aren't in this build, because they relied on the display mesh and their exact replacements aren't written yet:
    • Extrude Cut To the far side of a curved wall (tangency-labs#8634).
    • Cosmetic tap markings looking for their cylinder only in nearby bodies, so they can be slower (tangency-labs#10303).
  • Not fixed yet: selecting a joining extrude in the timeline can still light round walls an earlier feature made. The fix merged to main relied on the display mesh, so it was left out of this build (tangency-labs#11286).

Changed since 0.30.1

  • Extrude: once a face or profile is picked, clicking a face out of that plane makes it the "to" target instead of a second thing to extrude. Click into the Profiles box first to add it as a profile (tangency-labs#11201).
  • Browser: component placements start closed, and opening one leaves the placements inside it closed (tangency-labs#9658).
  • Preferences › Appearance has a new layout with a theme carousel and live previews. The settings and defaults are the same (tangency-labs#10580).
  • Older designs: a design saved by 0.24.0 or earlier opens with the bodies it was built with, so its later sketches, holes and moves find what they name (tangency-labs#10379).

New since 0.30.1

  • Joint dialog: Find Limits fills Minimum and Maximum from where the moving parts first touch another part (tangency-labs#7047).
  • Keep model keys out of sketches is a new option in Preferences › Shortcuts, off by default (tangency-labs#7675).

Fixed since 0.30.1

  • Sketch Break: breaking at a shared corner separates the curves that meet there (tangency-labs#7950).
  • Sketch Line: starting a line on an existing curve, or on its midpoint, keeps your first click (tangency-labs#11184).
  • Sketch Offset: instances stepped inward from an arc stop where the arc runs out instead of turning back (tangency-labs#11068).
  • Countersink: one next to a wall no longer notches the wall above the hole's face (tangency-labs#8261).
  • Pattern and Mirror: a hole placed by edge distances can be copied (tangency-labs#8231).
  • Joints: in a large assembly with many closed loops, a new joint moves into place instead of staying in conflict (tangency-labs#11146).
  • Sheet metal: material joined in the plane of a panel stays in the flat pattern and its DXF (tangency-labs#6855). Holes and cuts skip sheets they can't reach, which saves time in designs with many sheet parts (tangency-labs#10226, tangency-labs#10301).
  • Tapped holes read only the bodies along the drill line (tangency-labs#10227).
  • Agent chat: when a desktop launcher picks a Node too old for an adapter, it looks for a compatible one and retries (tangency-labs#11255).
  • macOS update: the update window says to quit SolidCraft before replacing it (tangency-labs#7886).
  • Translations: new messages for 16 languages, and a consistent Arabic word for component.

Compatibility

0.40.0-rc.2 writes design file format 50 (0.40.0-rc.1 wrote 49, and 0.30.1 writes 48). Format 50 adds Align's frames and marks each thread that keeps its old automatic size. Format 49 added 16 changes, including faces and edges saved in their NURBS form, ball patches, G4 continuity, pipe threads, thread ends and hand, Repair Part, and what a join makes of pieces that only touch. 0.40.0-rc.2 reads earlier format numbers, but 0.40.0-rc.1, 0.30.1 and earlier refuse a design saved by it.

If you script SolidCraft and are coming from 0.30.0 or older: in parameters.list, parameters.add and parameters.change, value is millimeters or degrees in every reply, the number in the parameter's own unit is in display_value, and reported numbers are rounded (tangency-labs#10812).

Downloads

The files are the same kinds as in stable: .exe, .msi and portable .zip for Windows; .dmg for macOS; .AppImage, .deb, .rpm, .flatpak, .snap, .tar.gz and Arch packages for Linux; a .tar.gz for FreeBSD; and solidcraft-web-0.40.0-rc.2.zip, a static site to host yourself. Check them with sha256sum -c SHA256SUMS.txt --ignore-missing.

The macOS app is signed with a Developer ID and notarized. The Windows files are signed with a self-signed test certificate that Windows doesn't trust, so Windows may warn you. The other packages are unsigned.

Thanks

Thanks to 9 contributors since rc.1.

SolidCraft v0.40.0-rc.1

Pre-release

Choose a tag to compare

@leomoon leomoon released this 03 Nov 10:56

This is a pre-release, for people who choose to test it. Designs saved in it use format 49 and may not open in stable 0.30.1 or older versions, so keep a copy of anything you care about before you save it here. It replaces SolidCraft's geometry kernel with solidcore.

The stable release is still 0.30.1. This pre-release isn't offered by the in-app update check, and solidcraft.io/app and the Flatpak feed stay on their current builds.

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

Report problems

Open an issue with the design if you can, and say that you're on 0.40.0-rc.1. Report an Issue in the app fills in the details for you. Geometry that builds wrong, or a design that rebuilds differently than it did in 0.30.1, is what we most want to hear about.

New geometry kernel

Modeling now runs on solidcore, a pure-Rust kernel, and it's the only kernel in this build. Booleans, fillets, shells and threads all go through it. There's no setting to go back.

  • Earlier designs rebuild their timeline on solidcore when they open. A design can come out a little differently, with different face or edge counts, and a feature that no longer builds reports an error.
  • Fillets may be slower than in 0.30.1 (reported by @jyviko).
  • We haven't measured speed or quality against 0.30.1 across designs, so this release makes no claim about either.

Known problems

31 tests in the test suite are on a known-failing list, each with its reason. What that means in use:

  • Variable-radius fillets may fail on solidcore. A round from r 2 to r 5 along a box edge fails, including through the Fillet dialog, a linear variable fillet in our reference designs fails, and a radius law with a corner in it is refused.
  • Other fillet cases: a taper that closes to a point, and a round ending in an earlier round, fail. A later round at a corner where earlier rounds meet builds a different corner than the test expects, and a vertical edge after separate bottom rounds can be refused as smooth.
  • Shells and chamfers: a 2 mm shell of a box with every edge rounded r 1.5 fails, and so do some shells on a filleted part. A chamfer at a ball cut's rim makes no change instead of explaining why.
  • Thicken: one reference design with a boundary loop thicken doesn't load (it fails at that step).
  • Holes: a 40 mm hole that touches a plate's edge at one point splits the plate into 2 bodies.
  • Meshes: planar faces get more triangles than before, so an exported STL of a box has 124 triangles rather than 12.
  • Changes from 0.30.1 that aren't in this build, because they relied on the display mesh and their exact replacements aren't written yet:
    • Extrude Cut To the far side of a curved wall (tangency-labs#8634).
    • Cosmetic tap markings looking for their cylinder only in nearby bodies, so they can be slower (tangency-labs#10303).
  • Not fixed yet: selecting a joining extrude in the timeline can still light round walls an earlier feature made. The fix merged to main relied on the display mesh, so it was left out of this build (tangency-labs#11286).

Changed

  • Extrude: once a face or profile is picked, clicking a face out of that plane makes it the "to" target instead of a second thing to extrude. Click into the Profiles box first to add it as a profile (tangency-labs#11201).
  • Browser: component placements start closed, and opening one leaves the placements inside it closed (tangency-labs#9658).
  • Preferences › Appearance has a new layout with a theme carousel and live previews. The settings and defaults are the same (tangency-labs#10580).
  • Older designs: a design saved by 0.24.0 or earlier opens with the bodies it was built with, so its later sketches, holes and moves find what they name (tangency-labs#10379).

New

  • Joint dialog: Find Limits fills Minimum and Maximum from where the moving parts first touch another part (tangency-labs#7047).
  • Keep model keys out of sketches is a new option in Preferences › Shortcuts, off by default (tangency-labs#7675).

Fixed

  • Sketch Break: breaking at a shared corner separates the curves that meet there (tangency-labs#7950).
  • Sketch Line: starting a line on an existing curve, or on its midpoint, keeps your first click (tangency-labs#11184).
  • Sketch Offset: instances stepped inward from an arc stop where the arc runs out instead of turning back (tangency-labs#11068).
  • Countersink: one next to a wall no longer notches the wall above the hole's face (tangency-labs#8261).
  • Pattern and Mirror: a hole placed by edge distances can be copied (tangency-labs#8231).
  • Joints: in a large assembly with many closed loops, a new joint moves into place instead of staying in conflict (tangency-labs#11146).
  • Sheet metal: material joined in the plane of a panel stays in the flat pattern and its DXF (tangency-labs#6855). Holes and cuts skip sheets they can't reach, which saves time in designs with many sheet parts (tangency-labs#10226, tangency-labs#10301).
  • Tapped holes read only the bodies along the drill line (tangency-labs#10227).
  • Agent chat: when a desktop launcher picks a Node too old for an adapter, it looks for a compatible one and retries (tangency-labs#11255).
  • macOS update: the update window says to quit SolidCraft before replacing it (tangency-labs#7886).
  • Translations: new messages for 16 languages, and a consistent Arabic word for component.

Compatibility

0.40.0-rc.1 writes design file format 49 (0.30.1 writes 48). Format 49 adds 16 changes, including faces and edges saved in their NURBS form, ball patches, G4 continuity, pipe threads, thread ends and hand, Repair Part, and what a join makes of pieces that only touch. 0.40.0-rc.1 reads earlier format numbers, but 0.30.1 and earlier refuse a design saved by it.

If you script SolidCraft and are coming from 0.30.0 or older: in parameters.list, parameters.add and parameters.change, value is millimeters or degrees in every reply, the number in the parameter's own unit is in display_value, and reported numbers are rounded (tangency-labs#10812).

Downloads

The files are the same kinds as in stable: .exe, .msi and portable .zip for Windows; .dmg for macOS; .AppImage, .deb, .rpm, .flatpak, .snap, .tar.gz and Arch packages for Linux; a .tar.gz for FreeBSD; and solidcraft-web-0.40.0-rc.1.zip, a static site to host yourself. Check them with sha256sum -c SHA256SUMS.txt --ignore-missing.

The macOS app is signed with a Developer ID and notarized. The Windows files are signed with a self-signed test certificate that Windows doesn't trust, so Windows may warn you. The other packages are unsigned.

Thanks

Thanks to 17 contributors.

v0.30.1

Choose a tag to compare

@leomoon leomoon released this 03 Nov 10:52

The browser version shows a design again instead of a black screen (tangency-labs#11107). This patch release also has security fixes for agent chat, lock files and API keys, and a new Render workspace layout. Designs saved in 0.30.1 use format 48 and don't open in 0.30.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 · roadmap.

Browser version

  • The browser version shows a design again instead of a black screen. A shader that the desktop app accepted was refused by browsers, so the 3D view drew nothing. It affected the browser version of 0.30.0, and solidcraft.io/app already has the fix. Reported by @Hogligan and @alepiro, @SignalSpirit found the console error, and @austin62jake fixed it (tangency-labs#11107).

Security fixes

  • Agent chat asks more often. Agent chat answers an agent's permission question by itself only when the whole title is an exact tool name of the chat's own server, named the way the Claude adapter names it (mcp__solidcraft-app__batch), and the request's kind is other or not given. It used to go by the word "solidcraft" anywhere in the title, so a command line or a file path could match. Every other question now goes through your permission mode and remembered answers, and otherwise appears in the panel. The permission modes and their default are unchanged.
    • With the Claude adapter, nothing changes.
    • Goose users get questions they didn't get before, because Goose words these titles as solidcraft-app: …. OpenCode users probably do too.
    • A SolidCraft MCP server you added to your agent yourself, named solidcraft, now asks.
    • Recent Codex and Gemini adapters mostly send titles without the word, so they were already asking.
    • Always allow and Allow everything work for all of these. The title formats come from reading the adapters' source, not from running them against live agents, and Copilot, Grok and Antigravity weren't checked. If their titles differ, you get a question in the panel. Reported by @froglemonade2 and @SchallerJe (tangency-labs#10955).
  • Lock files are written and read without following links. A design's lock file (.~<name>.lock) belongs beside the design, so writing one refuses anything at that path that isn't a regular file, and reading one takes only a regular file. A failed lock write still doesn't stop a design from opening, and saving a design through a link works as before. Reported by @froglemonade2 (tangency-labs#10951).
  • API key URLs are read the way the HTTP client reads them. A key goes only over HTTPS, or over plain HTTP to this computer, and the check could disagree with the client about where a URL's host ends. Over plain HTTP the host must now be exactly localhost, 127.0.0.1 or [::1], with at most a valid port. HTTPS URLs, the presets, and the usual Ollama and LM Studio URLs behave as before. A local URL with a user name (http://user@localhost/v1), an empty port (http://localhost:/v1) or an invalid port no longer gets the key. Reported by @froglemonade2 (tangency-labs#10953).

Control channel fixes

  • Control channel: a new connection has five seconds to show its token, so a client that connects and says nothing no longer holds one of the 16 connection seats. Once the token is accepted, a client can idle as long as it likes. solidcraft-cli mcp --connect no longer holds a connection open before its first call, and older CLIs still work because they retry on a new connection. Reported by @overprivileged (tangency-labs#10961).
  • Control token file on Windows: in a folder chosen with SOLIDCRAFT_CONTROL_DIR, an icacls run that times out now counts as a failure: the empty file is removed, no token is written, and clients need SOLIDCRAFT_CONTROL_TOKEN. The default folder behaves as before. A real icacls timeout hasn't been run on Windows; the tests cover the decision and the cleanup. Reported by @CamWight (tangency-labs#10958).

Changed

  • Render workspace: one editor per Browser selection. This replaces the Render studio panel, which is gone. With nothing selected the Inspector shows Scene, and a body, face or component shows Appearance. Environment, Lighting, a single light, a shot, Output, Sampling, Effects, Check and Wear each open their own editor. Interactive rendering, results, comparison and All shots are all still there (tangency-labs#8000).
  • Undo, Redo and the History bar with a feature editor open: they now cancel the open editor first, then step, instead of leaving OK and Cancel refusing with "the design changed while the feature editor was open". Reopen the editor to continue (tangency-labs#10786).
  • Move with bodies in differently turned frames: a single move of, say, a root body and an inserted part now adds one Move feature per frame (Move1, Move2) in one undo step, and each body moves the way you asked (tangency-labs#9683).
  • Save and Save As refuse a name that opens as another kind of file, such as part.step or part.stl. The message says to save as .sc, or to use Export. Nothing is written, and the design stays unsaved. .sc, the legacy design extensions, .json, and any other or no extension save as before (tangency-labs#9752).
  • sign(0) in a parameter expression is now 0, not 1. Other inputs are unchanged, but a design that relies on sign of exactly zero will evaluate differently (tangency-labs#10996).
  • Holes on cones and tori drill along the face's exact normal instead of a nearby facet's. On the cone in the report, the hole had leaned 2.56° sideways, so a hole like that changes slightly when the design rebuilds (tangency-labs#10885).
  • Parameter replies: in scripts and MCP, value now means millimeters (degrees for angles) in every reply from parameters.add, parameters.change and parameters.list. parameters.list used to report a user parameter in its own unit, and parameters.add and parameters.change used to report angles in radians, so a script that reads these should be checked. Reported numbers are rounded to 12 significant digits, so 29.999999999999996 reads 30 (tangency-labs#10812).

New

  • Inch fasteners in Insert Part: ASME hex cap screws and hex nuts and ANSI SAE and USS plain washers, sizes 1/4 to 1, UNC and UNF. A new Unit system list sits above Type and opens on Metric. Inch parts have no cosmetic threads yet (tangency-labs#10335).
  • Tangent Plane lines up with a reference plane, at an angle. The dialog has an optional Reference plane, and an Angle field once one is picked. The plane follows the reference when it changes. Without a reference nothing changes (tangency-labs#9002).
  • Sheet metal folds cross slanted and curved edges: a fold can cross a panel's outer edges on the base or a flange, in lines, arcs, conics or splines, and the DXF keeps those curves as curves (tangency-labs#10922).
  • Perforation bounded by a sketch: in scripts and MCP, sheet.perforate takes an optional sketch and profiles, so holes go only inside that outline. The Perforate dialog has no outline input yet (tangency-labs#10754).
  • Circular pattern axis origin takes length expressions in scripts and MCP, and the copies follow them when a parameter changes. Editing the pattern in its dialog keeps the expressions (tangency-labs#10855).
  • Create Components from Bodies has a dialog, with body picking, Select All, Cancel and OK. The menu command used to fail with an error (tangency-labs#10919).
  • Move/Copy with Create Copy on a component copies the component instead of copying its bodies into the active component. With the selection filter on components, a click in the view picks the component (tangency-labs#9930).

Improved

  • New Sketch grid preview: a plane selected in the view shows the grid on it before you press New Sketch, until you deselect it (tangency-labs#10900).
  • Preferences › General has a new layout: rounded profile cards, a search box in the title bar, and one profile card at the bottom of the sidebar. The settings and their defaults are the same (tangency-labs#10295).
  • Dimension value box: one typed before its target keeps a 30 px gap from the pointer, and at the view's edge it opens on the pointer's other side, so it doesn't cover what you're about to pick (tangency-labs#11073).
  • Rounded rectangle corners take parameter expressions in scripts and MCP, as the other rectangles do (tangency-labs#10956).
  • Hole warnings: a hole that cuts nothing now warns the hole removes no material (or 1 of 2 holes remove no material), and one that takes a whole body warns the hole removes all of Body1. The hole is still kept (tangency-labs#10836).
  • Construction axes and points follow Move: one built on a body goes with that body when Move moves or turns it. One that also reads something fixed keeps its place, and construction planes are unchanged (tangency-labs#10212).
  • Joints: a second planar joint between two parts now moves its part into place when a half turn closes the loop, instead of staying a conflict. A typed joint that closes a loop starts from where its parts are (tangency-labs#10371, tangency-labs#10336).
  • Section details card: every row shows, and the numbers read like the pill, such as 15.00 mm and (0.707, 0.707, 0) (tangency-labs#10799).
  • Sketch Intersect: an intersection curve between picked faces spans their whole surface, not only the piece under the pick (tangency-labs#9107).
  • Language: a system set to Traditional Chinese, including macOS's zh-Hant-TW, Hong Kong and Macao, opens in Traditional Chinese instead of Simplified on a first start (tangency-labs#10307).
  • Faster assemblies and sections: dragging a part with mirrored copies no longer meshes them on every frame, tilting a Section Analysis rebuilds its outline index once instead of on every frame, and cosmetic tap markings look for their cylinder only in nearby bodies (tangency-labs#10101, tangency-labs#10373, tangency-labs#10303).
  • Security policy: it now says what counts as a security i...
Read more

v0.30.0

Choose a tag to compare

@leomoon leomoon released this 02 Nov 10:28

Designs saved in 0.30.0 use format 47 and don't open in 0.29.x 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 · roadmap.

New

  • Keep and compare renders. The render workspace keeps up to eight finished renders per design for the session. Compare shows the live view or one render against another with a draggable divider and a swap button, and All shots in the Output footer renders every saved shot in turn, with running and waiting counts in the Shots strip (tangency-labs#7375).
  • Large designs open without freezing the web app. Opening a design in the browser now rebuilds a few features each frame, with a progress card that counts features and a Cancel button, and an opened design is drawn even though the page has no background worker (tangency-labs#10211, tangency-labs#10274, tangency-labs#10275, tangency-labs#10362).
  • Plane through an axis and a point. Construct has a new plane that follows its axis and point when they change, and it survives renames, undo, and reopening (tangency-labs#10472).
  • Measure takes construction geometry and reports more. Origin and construction planes, axes and points can be picked, with exact distances between them. The face of a fillet around a circular edge and a spherical face now report radius and diameter (tangency-labs#10157, tangency-labs#7160).
  • Sketch Offset makes several copies at once. An Instances count beside Distance stacks evenly spaced offsets, 1 by default, and the one Distance dimension drives them all (tangency-labs#9828).
  • Construction lines with a length. The horizontal, vertical, angle, parallel and perpendicular construction line tools take an optional Length, which draws a segment instead of an infinite line. A Construction | Normal switch turns that segment into a normal sketch line. Without a length nothing changes (tangency-labs#10427, tangency-labs#10551, tangency-labs#10639).
  • Sketch Ellipse has Major radius and Minor radius boxes while drawing, and typed values become dimensions in the same undo step (tangency-labs#10282).
  • Remove Spline Point: the right-click menu of a spline's point can take that one point out while the curve keeps its other points. Delete still removes the whole spline, and the command refuses a point the spline needs, with a message (tangency-labs#10793).
  • Move Sketches to Their Parts. The Sketches folder's menu and a sketch's menu move sketches drawn on a part's face into that part in one undo step. A sketch with nowhere to go stays put, and the status bar says why (tangency-labs#10219).
  • Hide a component from the History bar. A component's Browser menu has Hide its History. Its features keep rebuilding and stay in the Browser, which suits imported copies. This is saved in the design (tangency-labs#10578).
  • Loft and Surface Loft take two sections from one sketch. Each picked profile is now a section, and curves that meet end to end stay one section (tangency-labs#8222).
  • Press Pull on a chamfer's flat face reopens the chamfer, as it already did for a fillet's round face, and the reopened window draws its arrow on the edge nearest your click (tangency-labs#9771).
  • Cancel on the Computing toast: a slow history command or delete check can be canceled from its "Computing…" toast, and the design, the marker and the undo history stay as they were (tangency-labs#10366).
  • The Parameters Filter box reads expressions, so typing a parameter's name also lists every parameter that uses it (tangency-labs#10385).
  • View angles card: each axis has a button that turns it to 0° and a lock, off by default, that holds that angle while you orbit, use the arrow keys or use a 3D mouse (tangency-labs#10344).
  • Creo Parametric mouse mapping: a new navigation preset with middle-drag orbit, Shift+middle pan and Ctrl+middle zoom (tangency-labs#9322).
  • Invert the curved view cube arrows: a new option, off by default, in Preferences › Navigation (tangency-labs#10539).
  • Turn off preview tints: the preview now tints new surface whatever its size, and two new options in Preferences › Graphics › Viewport, both on by default, can turn off the new surface tint and the red removed material tint. Nothing changes unless you turn them off (tangency-labs#9112).
  • Export commands for each format: STEP, STL, 3MF, OBJ and URDF each have their own command, so each can have a keyboard shortcut (tangency-labs#10177).
  • Agent chat model picker. Every model picker opens on a search box and lists what the provider or agent reports, folded by provider when there are several. A model that isn't listed can be typed in, where the endpoint or agent accepts it. The Add-agent dialog and each endpoint's card under Preferences › AI list the endpoint's models, and there are new OpenRouter and OpenClaw presets (tangency-labs#10255).
  • Agent chat: copy a whole message. Each sent prompt and each reply has a Copy message button and menu item. A reply copies as its original Markdown (tangency-labs#10741).
  • Assistant shortcut can be changed: Toggle Assistant is now listed in Preferences › Shortcuts, where you can rebind or clear it. Ctrl+Shift+A stays the default (tangency-labs#10767).
  • MCP server: compare the model with a picture. A new compare_picture tool lines the model's outline up with a reference PNG or JPEG and returns the overlap, edge differences in mm, and an overlay image (tangency-labs#6416).
  • New guide chapter: "How a design is built" covers the parametric idea, the timeline, bodies and components, and a term map for people coming from other CAD programs (tangency-labs#10409).

Improved

Read more

v0.29.0

Choose a tag to compare

@leomoon leomoon released this 01 Nov 10:27

Designs saved in 0.29.0 use format 46 and don't open in 0.28.x 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 · roadmap.

New

  • Interface follows your system language on first start. With no language saved yet, SolidCraft starts in the system's language: the OS locale on the desktop and the browser's languages in the web app, matched by exact tag first (such as pt-BR), then by base language (de-AT takes German), then English. A new System choice at the top of Preferences' language list is the default and keeps following the system. A language you picked earlier stays as it is (tangency-labs#10183).
  • Sketch Offset keeps its corners joined. Offsetting a chain whose corners only meet in position, such as separate lines and arcs held by Coincident constraints or ends within 0.0001 mm, offsets it as one chain: each new corner is where the two offset curves meet, trimmed where they overlap and extended where they fall short, in the preview too. An offset circle from a dimensioned circle no longer reports a degree of freedom (tangency-labs#10089, tangency-labs#8858, tangency-labs#9573).
  • Joints under each component, and show or hide many Browser rows in one drag. Each component placement in the Browser has a Joints folder listing the joints that attach it, with the placement each one joins it to; the rows click, show and hide, open and right-click like the joint's own. Pressing on a row's eye and dragging over other rows' eyes gives them all the first row's new state, as one undo step. F2 renames a clicked Browser group (tangency-labs#9404, tangency-labs#9681, tangency-labs#10013).
  • Measure starts with your selection. Opening Measure with one or two vertices, edges or faces selected fills its inputs and shows the result right away. Its distance label and X, Y and Z labels can be dragged off the part, keeping a thin leader to what they measure; a double-click puts a label back (tangency-labs#10234, tangency-labs#9395).
  • Freehand lasso selection: a new option, off by default. With Lasso on in the Select panel, a drag from empty space draws a freehand loop and selects what is wholly inside it, in a sketch and on the model, following the selection filter and Shift/Ctrl adding (tangency-labs#10185).
  • Point-to-point Align on chosen axes: Align can move a body along only the world axes you choose, such as Z alone, leaving the other coordinates as they are (tangency-labs#10015).
  • Edit Joint shows both sides and can pick them again, keeping the joint's type, limits, drive and expressions, in one undo step (tangency-labs#9692).
  • Sketch Chamfer takes several corners at once, as Fillet does, with the same sizes and one undo step (tangency-labs#8998).
  • Sketch Fillet and Chamfer on two lines that don't meet: a line that stops short is extended and a line that runs past is cut back to where they meet, then the corner is rounded or cut. A radius of half a side now rounds both its corners, the usual way to draw a slot, and a corner held by Coincident takes a fillet when a dimension measures to it (tangency-labs#8426, tangency-labs#8238, tangency-labs#7778).
  • Paste sketch geometry into another design: sketch curves copied or cut in one design paste into a sketch in another open design, with the constraints and dimensions among them, in one undo step (tangency-labs#9675).
  • Line tool to tangent arc and back: a new option, off by default (Preferences › Sketch › Rest on a line's last point to switch to a tangent arc). Hold the pointer still on the chain's last point and the next click ends a tangent arc; the same gesture goes back to lines (tangency-labs#9553).
  • Equation curves in lengths: an equation curve's variable can carry its range's unit, so a formula over a length range reads as the math does ("Variable has the range's unit" in the dialog) (tangency-labs#9549).
  • Expressions in rectangles and center circles: rectangle corners and a center circle's radius or diameter can be expressions that follow their parameters (tangency-labs#10251).
  • Gruvbox Light and Gruvbox Dark replace the six Gruvbox cards, each with a Contrast choice of Soft, Standard or Hard; a saved Gruvbox choice carries over to its family and contrast (tangency-labs#10292).
  • Theme options: a theme can offer options, listed under the active theme in Preferences, starting with Opacity, and can color its panels and the 3D view background per ribbon tab, with a fade between tabs (Tab colors). Theme file authors get options, overlays and requires in the format (tangency-labs#9805, tangency-labs#9807, tangency-labs#9808).
  • Keep work open across design tabs: a new option, off by default (Keep dialogs and tools open when switching designs). Each design tab then keeps its open dialog with what was picked and typed, its sketch tool and its toolbar tab (tangency-labs#9656).
  • Turn to isometric for Extrude: two new options, off by default (Turn the view to isometric when Extrude opens, and Go back to the earlier view when Extrude closes) (tangency-labs#9948).
  • Fit the model after a navigator view change: a new option, off by default, makes a view cube face, corner or arrow and an axis gizmo tip center the model and fit it from one distance; a new Home and Fit size setting sets how much of the view the model fills (default 100 %) (tangency-labs#10092).
  • Invert the view cube rotation arrows: a new option, off by default, makes the arrows swing the camera the way they point (tangency-labs#10286).
  • NX mouse mapping: a new navigation preset with middle-drag orbit, Shift+middle pan, Ctrl+middle zoom and a middle double-click to fit (tangency-labs#10156).
  • Make a part active by sketching on its face: a new option, off by default (Preferences › Sketch › Sketching on a part's face makes that part active) (tangency-labs#10216).
  • Keep the shape of dark parts: a new option, off by default, in Preferences › Graphics, shades the view in linear light with a soft sky fill, so dark faces keep a gradient instead of turning black (tangency-labs#9028).
  • Linux: the desktop's own title bar: set SOLIDCRAFT_TITLEBAR=system, or "titlebar": "system" in graphics.json, to open the window with the desktop's title bar and buttons; without it nothing changes (tangency-labs#9263).
  • Color picker: every color field's popover has step buttons beside its number fields, H, S and V fields, and a row of the 12 most recent colors (tangency-labs#9398).
  • Assembly mass properties: assembly.mass_properties gives the mass, center of mass and inertia of every occurrence and rigid group (tangency-labs#9717).
  • Ribbon tooltips for every command: every command on the ribbon now has its help text, from Sketch to Surface, Sheet Metal, Plastic, Inspect and Construct (tangency-labs#9069, tangency-labs#9847, tangency-labs#9868).

Improved

  • Ribbon click ends the running sketch tool: a second click on the lit ribbon button of the sketch tool in use ends it, so clicks in the view select again. Turn off Preferences › Sketch › Clicking the running tool's button ends it to have the click start the tool again (tangency-labs#10263).
  • Alignment guides from end points and corners: while a drawing tool waits for a point, hovering a line or arc end, a rectangle corner or a free point shows the same dotted guide as a center or midpoint. Turn off Alignment guides from end points and corners while drawing to keep only centers and midpoints (tangency-labs#9673).
  • Live viewport details: the details card of an active analysis or of Section edits its settings in one standard card, with its key, readout and actions. Turn off Live viewport details to keep the read-only analysis keys and the Section dialog (tangency-labs#8614).
  • Preferences has twelve pages under four headings, with General above them, a profile switcher pinned to the page list and an In profile tag on the profile pages; the settings themselves are unchanged (tangency-labs#9907).
  • Settings are saved as soon as they change, not only every 30 seconds and at a normal close, so a crash or a forced close no longer brings back old settings; changes not yet applied in Preferences don't reach the settings file, and Show tool at cursor survives a restart (tangency-labs#9711, tangency-labs#9831, tangency-labs#10049).
  • Sketch snapping and drawing: a rectangle corner snaps to the crossing of two infinite construction lines beyond their end points, 3-Point Circle keeps its snapped clicks as constraints, a center rectangle's center lines up with the axes when dragged, Project gives its new curves the selected line type, and the polygon's Radius and Sides boxes stay clear of the preview (tangency-labs#10285, tangency-labs#9922, tangency-labs#10087, tangency-labs#10009, tangency-labs#10199).
  • Sketch dimensions: a driven dimension that nothing fixes any more takes a value again on a double-click, and dimension edits work with tangent caps on offsets (tangency-labs#10023, tangency-labs#9494).
  • Edit dialogs show a stored number with its unit, such as "2 mm" for a fillet radius, in Fillet, Chamfer, Shell, Draft, Offset Face, Revolve, Pipe, Thread and more (tangency-labs#8697).
  • Edit Sketch on the ribbon edits the selected sketch, or offers the design's sketches, instead of a parameter error (tangency-labs#9829).
  • Delete with nothing selected asks you to select something instead of showing a parameter error (tangency-labs#9114).
  • Delete in a rolled-back history builds the later history once when nothing breaks, and the delete reuses what its check computed (tangency-labs#9972, tangency-labs#10090).
  • Exploded View is grayed out, with the reason, until the design has two components (tangency-labs#9659).
  • Pattern and Mirror dialogs explain Object Type and say why a clicked sketch isn't taken (tangency-labs#10097).
  • Insert SVG says why a drawing has nothing to import, such as a file that holds only an embedded picture (tangency-labs#9652).
  • Update Links: linked designs that changed while the tab was away come back as one undo step, and a linked design changed while the assembly was closed is read again when it opens (tangency-labs#9753, tangency-labs#9872).
  • Properties on a large assembly measures much faster, shows its progress and stops when closed (tangency-labs#8730).
  • **L...
Read more

v0.28.0

Choose a tag to compare

@leomoon leomoon released this 31 Oct 11:03

Designs saved in 0.28.0 use format 45 and don't open in 0.27.x 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 · roadmap.

New

  • Print face: pick the face a part sits on, and Send to Slicer uses it. Mark a flat face as a body's print face with Ctrl+B, Print Face on the face's context menu, or the Print face input in the Send to Slicer window. Send to Slicer, Save as Mesh for a slicer and Open in EasyPrint then lay that body on the bed on that face, centered over the origin; the design itself doesn't move. The print face is lightly tinted in the view, set by Preferences › General › Slicer › Print face highlight (tangency-labs#8433).
  • The toolbar shows which analyses are toggled on. A surface analysis that is on shows as pressed on the ribbon, and a status item above the view names it with its setting, its legend and an × to turn it off; Section gets an item too, whose setting opens the section editor. Esc turns off the newest one. Preferences › Interface › Highlight active ribbon commands, Show viewport analysis status and Show viewport section status turn these off (tangency-labs#8555–tangency-labs#8557).
  • Point clouds: color and filter by any property in the scan. A point cloud keeps every property its PLY file gives its points. Color it by one, with a ramp for real numbers or a palette with a legend for whole numbers, and filter it by ranges or named values. Each range track shows how the values are spread and can be zoomed, stepped and played as a sweep (tangency-labs#8819).
  • Construction-line tools for sketches. Sketch › Create and the Sketch Palette have a Construction Line family that draws infinite construction lines directly: through two points, horizontal, vertical, at an angle, parallel, perpendicular, tangent through a point, tangent at a curve point, common tangent and angle bisector. Each placement is one undo step. Preferences › Sketch & selection › Extended construction line tools hides them (tangency-labs#8679).
  • Copy sketches between designs. Copy a completed sketch in one tab and paste it into another as an independent, editable sketch, with the parameters it uses, in one undo step. A sketch whose plane or projections depend on model geometry outside the copy is refused, with the reason (tangency-labs#8962).
  • Nest and reorder Browser groups: Browser groups can hold other groups, and groups and components can be dragged into the order you want (tangency-labs#9116).
  • Personal Sheet Metal Rules: the Sheet Metal Rules manager saves a rule under a name in your profile, and every design's rule manager offers it, with Rename and Delete (tangency-labs#9520).
  • Quick measurement: a new option, off by default, shows the selection's length, diameter and radius, area, position, or the distance and angle between two items in the view's bottom right corner; a click copies it (Preferences › Interface › Quick measurement in the view's corner) (tangency-labs#7513).
  • Insert Part into several holes: the Insert Part dialog takes several holes and seats one fastener in each, as placements of one component, in one undo step (tangency-labs#9342).
  • Sketch Report: Inspect Sketch on the Sketch tab opens a window with the solver status, degrees of freedom left, counts, the curves and points that aren't fully constrained, and Copy JSON (tangency-labs#6263).
  • Hyperbolic functions in expressions: sinh, cosh, tanh, asinh, acosh and atanh (tangency-labs#9334).
  • Number parameters in sketch text: a text's words can include a number parameter, such as 'W' + Width, and number(Width, 2) gives the number alone with fixed decimals (tangency-labs#9386).
  • Finnish is a new interface language (tangency-labs#9631).

Improved

  • Select Other picks hidden geometry: the Select Other list includes hidden bodies and sketches and occluded edges and vertices near the pointer, and grows to the window's height. Turn off Preferences › Sketch & selection › Select hidden geometry with Select Other to keep the previous list (tangency-labs#5577).
  • Constraint icons hide when zoomed out: sketch constraint glyphs leave the view once the sketch is zoomed out far enough to clutter it. Turn off Preferences › Sketch & selection › Hide constraint glyphs when zoomed out to keep them at every zoom (tangency-labs#9023).
  • Status items fold: three or more status items above the view fold into one summary badge with a menu; Preferences › Interface › Fold viewport status items keeps the full row (tangency-labs#8558).
  • Browser eye on the right: each Browser row's show/hide eye sits in a column at the right end of the row, away from the activate button; Preferences › Interface › Eye next to the fold arrow puts it back (tangency-labs#8720).
  • Reorder features in the Browser's History: with the History shown in the Browser, dragging a feature row reorders it, as in the History at the left (tangency-labs#9599).
  • Ribbon drop-downs as large icons: new options, off by default, in Preferences › Interface show a panel's drop-down as a grid of large icons, and leave out commands already pinned on the ribbon (tangency-labs#5012).
  • Model cache: a saved model still opens fast after an update, a design with mesh bodies keeps its saved model, and a large design writes its saved model once per set of sketch keys and reads it back on several threads, so it no longer thins the cache (tangency-labs#7354, tangency-labs#9218, tangency-labs#9010).
  • Check for updates in Help: Help › Check for updates checks right away and offers the update, or says SolidCraft is up to date, in the interface language (tangency-labs#8896).
  • Hole dialog: hovering an option in the Extents, Hole Type, Hole Tap Type and Drill Point lists shows the hole it makes (tangency-labs#9577).
  • Expressions: Down arrow in an empty field lists the design's parameters, the Parameters dialog's expression field opens wide while you edit a long formula, a decimal comma works inside plain parentheses, and =5 takes the design's unit as 5 does (tangency-labs#9385, tangency-labs#9384, tangency-labs#9447, tangency-labs#9261).
  • Apply parameter edits together: a new option, off by default: clear Apply each change as you leave its field at the top of the Parameters dialog, and edits wait for Apply or OK, then go in together with one rebuild and one undo step; Cancel or Esc drops them (tangency-labs#9400).
  • Parameters: clicking a Name heading sorts each section by name, A to Z, Z to A, or back to the design's order (tangency-labs#8725).
  • Value boxes: Preferences › Design › Show values beside their handles in the view, on by default, can be turned off to type values only in the command window, with nothing over the model (tangency-labs#9547).
  • Sketch views: Preferences › Sketch › Turn to face a sketch when it opens, on by default, can be turned off to keep the view when a sketch opens, and editing a sketch in a rotated component squares its axes to the screen (tangency-labs#9190, tangency-labs#9042).
  • 3D mouse: a new option, off by default, turns a square-on sketch with the 3D mouse (Preferences › Navigation › 3D mouse › Turn sketches with the 3D mouse), and Reverse zoom direction now reverses only the wheel, not the 3D mouse (tangency-labs#9406, tangency-labs#8994).
  • Sketch picking and snapping: Mirror, Move/Copy, Scale and the patterns take a whole profile with a click inside it or a whole chain with a double-click; the cursor snaps On a spline, ellipse or conic; it snaps where the guides from two recent centers or midpoints meet; and Project takes a construction axis (tangency-labs#8812, tangency-labs#9343, tangency-labs#8744, tangency-labs#9471).
  • Large imported sketches: dragging in a sketch with a large imported logo stays smooth, as profiles are found island by island (tangency-labs#9313).
  • Extrude, Revolve and Emboss: a sketch picked in the Browser or History while the dialog is open fills Profiles with all its profiles (tangency-labs#6154).
  • Body selection: hovering a body-only input, such as Save as Mesh, highlights the whole body, and opening an Extrude editor shows the hidden body that supplies its face profile until it closes (tangency-labs#5575, tangency-labs#5576).
  • Recover unsaved design? has Discard all, with a confirmation (tangency-labs#9300).
  • Start: the Recent list tells same-named designs and imports apart, with the file kind and the path (tangency-labs#9174).
  • Canvas: Calibrate Canvas takes its two points as clicks on the image (tangency-labs#9208).
  • Toasts have a close (×) with a countdown ring instead of a Close button (tangency-labs#8763).
  • Theme: System follows the desktop's dark or light setting on Linux GNOME, and on macOS it follows a change of Appearance while the app runs (tangency-labs#8123, tangency-labs#9103).
  • Preferences search finds settings in rows without a label, such as the status bar and Reveal on hover (tangency-labs#9318).
  • English: the interface uses American spelling throughout, with British spelling in English (UK) (tangency-labs#9194).
  • Opening a DWG says it's a DWG file and suggests STEP or DXF instead (tangency-labs#9487).
  • DXF export writes the full AutoCAD 2000 file structure, so strict readers such as AutoCAD 2025 open it (tangency-labs#9662).
  • Closing no longer waits for the Home pictures of every recent file, which could freeze the window for several seconds (tangency-labs#9416).
  • Large histories: a folded Browser or History folder finds its worst mark in one pass, which took most of each frame on a long history (tangency-labs#9294).
  • Agent chat reads the options an agent offers through ACP, so you can pick the model for Claude as well as OpenCode, and supports OpenCode V2 (tangency-labs#3867).
  • solidcraft-cli mcp --param-check also checks calls sent to a running app, and the control channel takes a per-request param_check level (tangency-labs#9073, tangency-labs#9185).

Render

  • GPU path tracing on NVIDIA: the path shader compiles on NVIDIA's Vulkan driver (tangency-labs#6850).
  • Framing: Fit Product and the fit on entering Render frame the product inside the picture's frame, after the saved setup loads (tangency-labs#5764).
  • Size limits: a raster render too large for the renderer is refused ...
Read more

v0.27.1

Choose a tag to compare

@leomoon leomoon released this 30 Oct 10:34

A patch release: active bottom-bar toggles are readable in the SolidCraft 95 theme, and fixes.

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 · roadmap.

Fixed

  • SolidCraft 95 theme: an active toggle on the view's bottom bar, such as Orthographic, showed as a blank dark blue block; its label and icon now draw in the theme's selected-text colour where the accent colour doesn't read (tangency-labs#9171).
  • System theme on macOS: with Preferences › Interface › Theme set to System, the app follows a change of the macOS Appearance while it runs (tangency-labs#9103).
  • Older designs: a sketch with a projected face seen edge-on, saved by an older release, keeps its line when it is rebuilt, so an offset that uses that line no longer fails (tangency-labs#9097).
  • Empty sketch: a new sketch with no geometry says so in the view instead of "fully constrained" (tangency-labs#9104).
  • Render: a raster render too large for the renderer is refused before it starts, with a suggestion to reduce its size or the visible geometry, instead of failing partway (tangency-labs#5728).
  • solidcraft-cli mcp --param-check now also checks calls sent to a running app, not only a headless session (tangency-labs#9073).

Compatibility

0.27.1 writes design file format 44, as 0.27.0 does. It opens every earlier design, but 0.26.x and earlier refuse a design saved by 0.27.x. Drawing files (.scdwg) are format 1.

v0.27.0

Choose a tag to compare

@leomoon leomoon released this 30 Oct 16:07

Designs saved in 0.27.0 use format 44 and don't open in 0.26.x 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 · roadmap.

New

  • Cut and paste features and sketches between components: select features or sketches, Cut with Ctrl+X (Cmd+X) and Paste with Ctrl+V (Cmd+V) into the active component. They keep their place in the timeline and the features that use them, the bodies they make move with them, and it is one undo step; a cut that would leave any feature broken is refused (tangency-labs#5805).
  • Copy and paste between designs: copy bodies or components in one tab and paste them in another, at the same world position and in one undo step. Bodies arrive as imported bodies without their history; components arrive as an independent copy with their sketches and features, appearances, materials, joints between the copied parts and the user parameters they use. A component whose features use something outside it is refused, with a list of what it uses (tangency-labs#3512).
  • Equation curves in sketches: Sketch › Create › Equation Curve draws a curve from parametric x(t) and y(t) formulas, or from y = f(x), over a range you set. The formulas take the design's parameters, so the curve follows a parameter change, and Extrude, Revolve and Sweep take it like any spline; Edit Equation Curve is on its context menu (tangency-labs#8353).
  • 3D sketch tools: 3D Line, 3D Spline and 3D Point on the ribbon now start working tools in a 3D sketch, and a drawn 3D point is moved with a triad when you click it (tangency-labs#8041).
  • Moment of inertia in Properties: the Properties window of a part, a component or an assembly shows the inertia tensor about the centre of mass, the principal moments and axes, and the first moments, with Copy matrix, and the view marks the centre of mass with the principal axes while it is open (tangency-labs#8103).
  • Settings profiles: Preferences › General › Settings profiles saves the Interface, Navigation and Sketch preferences, the interface language, keyboard shortcuts and the toolbar under a name, switches between them, and exports and imports them as a file (tangency-labs#6254).
  • Several keys for one command: on the Keyboard Shortcuts page, + after a command's key records another one, and every key runs the command (tangency-labs#6288).
  • Button head cap screws (ISO 7380-1), M3 to M16, in the standard parts library (tangency-labs#8017).
  • Arch Linux packages for x86_64 and aarch64 come with every release, to install with pacman -U (tangency-labs#8576).
  • solidcraft-cli run --param-check takes off (the default), warn or strict, as mcp does, to report or stop on a misspelt key in a script step (tangency-labs#6924).

Improved

  • Insert Design lists the open designs: with other designs open, Insert Design first lists them to insert one as a linked component, with Browse… for a file; Preferences → Design → "Insert Design lists the designs open in other tabs first" turns the list off (tangency-labs#8571).
  • Navigation options: new options, all off by default or keeping today's behaviour until changed: a mouse-wheel zoom speed (Preferences → Navigation), zoom with two-finger scroll while holding a key you choose, Stop zoom at the model, a Traced orbit for the 3D mouse, and Right drag orbits (on by default). Picking the SolidWorks mouse mapping now turns Right drag orbits off and sets Middle double-click to Fit; turn Right drag orbits back on in Preferences → Navigation to keep orbiting with a right drag (tangency-labs#4179, tangency-labs#8584, tangency-labs#7991, tangency-labs#6497).
  • View options: a Field of view slider for Perspective view (Preferences → Graphics), a background colour of your choice for the 3D view (Preferences → Interface → Theme → Background), and the navigation bar can sit at the top of the view (tangency-labs#5373, tangency-labs#8815, tangency-labs#8793).
  • Status bar: when the status bar is on, a mouse mapping button switches between Fusion, SolidWorks, Blender and the other mappings (tangency-labs#8856).
  • Toolbar tabs: hide and show ribbon tabs from the + after the tabs, a right-click on a tab, or Preferences → Interface → Toolbar tabs; every tab stays visible by default (tangency-labs#8594).
  • Browser: the Browser remembers being folded, a new Reveal on hover option fades it out until the pointer reaches it (Preferences → Interface → Layout), and in the History "In browser" layout a feature that failed or built with a warning is marked, as is a folded row holding one (tangency-labs#8762, tangency-labs#8593).
  • Command search: a new option, off by default, shows where a hovered result sits in the ribbon, opening a section's drop-down when it lives there (Preferences → Interface → Show search results in the ribbon) (tangency-labs#7322).
  • Text fields have a right-click menu with Cut, Copy, Paste and Select All (tangency-labs#8882).
  • Dialogs: Apply stays disabled until something has changed, Pattern on Path reopens a saved pattern in its dialog, and editing a feature after the history marker says that it isn't built (tangency-labs#8728, tangency-labs#8805, tangency-labs#8727).
  • Updates: Update now checks for the newest release when pressed and installs that one, instead of the release an earlier check found (tangency-labs#7725).
  • Settings in several browser tabs: in the web app, a setting changed in one tab shows in the other open tabs at once, and one tab no longer undoes another's changes when it saves (tangency-labs#8832).
  • One surface analysis at a time: surface shading and Continuity now share one slot, keeping the last one started; turn off Preferences → Graphics → "Use a single surface analysis" to keep them on together as before (tangency-labs#8554).
  • Keyboard Shortcuts: the read-only list opened from Home and Help says so, with an Edit shortcuts button (tangency-labs#7449).
  • Large designs: the window no longer spends time every frame on lookups that grew with the square of the design, the History strip draws only the chips in view, and the first undo after opening a design no longer rebuilds the whole timeline (tangency-labs#8843, tangency-labs#8976, tangency-labs#8939).
  • Parameters: hovering a name in the Parameters table shows the full name, the Name column cuts long names off less, the formula completion list is as wide as its longest name, and the Name columns line up across Favorites, User and Model (tangency-labs#8551, tangency-labs#8945).
  • Segmented choices in dialogs, such as Coil, Revolve and Shell, show their options in your language (tangency-labs#8030).

Render

  • GPU path tracing on macOS: the path tracer runs on Metal, so a Mac can render images on the GPU; the default image method is still Raster, and SOLIDCRAFT_GPU=cpu keeps the CPU (tangency-labs#7185).
  • Larger preview scenes: on the desktop the Render preview's geometry limit follows the graphics device, up to 2 GiB, instead of a fixed size, and a refusal names the size and the limit in a readable card; Preferences → Graphics → "Use previous Render preview geometry budget" restores the old limit (tangency-labs#4154).

Sketch

  • Line up with other points while drawing: a new option, off by default, lines the pointer up horizontally and vertically with other sketch points at once while drawing, with dotted guides, and keeps the alignment as constraints (Preferences → Sketch → "Line up with other sketch points while drawing") (tangency-labs#8474).
  • Dimension a model edge: the Dimension tool measures a body's edge or vertex, projecting it into the sketch first (tangency-labs#8010).
  • Sketch Intersect takes faces or whole bodies, and a Projection Link option makes ordinary sketch geometry (tangency-labs#7989).
  • Press and drag draws one line: a new option, off by default, in Preferences → Sketch (tangency-labs#7252).
  • A selected text moves when dragged from anywhere inside its frame (tangency-labs#8851).

Assemblies

  • Drag along joint freedoms: Move on a jointed part shows handles for only the motion its joints allow, with a live distance or angle readout, joint limits and coarse and fine rotation steps; Preferences → Design → "Use joint motion handles for assembly Move" turned off gives the previous Move panel (tangency-labs#6904).
  • Align components: Align has an Object Type, Bodies or Components, so one placement of a component can be aligned without moving its other placements (tangency-labs#7224).
  • Joints in History folders: joints can go into History folders with features, so many joints fold into one tile (tangency-labs#8316).

Fixed

Read more

v0.26.1

Choose a tag to compare

@leomoon leomoon released this 30 Oct 10:30

A patch release: a security update for the update check, Wayland pinch zoom, conflicting sketch curves drawn red, more of the Render workspace, and fixes.

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 · roadmap.

Security

  • rustls-webpki 0.103.16 and webpki-root-certs 1.0.10 for RUSTSEC-2026-0382 and RUSTSEC-2026-0383, which could let certificate checks accept distrusted intermediates. In SolidCraft this affects only the desktop update check's HTTPS connection (tangency-labs#8588).

New

  • Trackpad pinch zooms the view on Linux under Wayland and XWayland, as it already did on macOS and in the browser (tangency-labs#8023).
  • Play History: the History controls and Inspect → History have a Play button that rebuilds the history one feature at a time; right-click the History controls or use Preferences to get the four-button strip back (tangency-labs#7853).
  • Vertex markers: a new option, off by default, draws a small dot at every vertex where edges are shown, so you can see what a vertex pick will hit (Preferences → Graphics → Vertex markers) (tangency-labs#8119).
  • History in the Browser: a new History layout, In browser, lists each component's sketches and features in a History folder in the Browser, with the history marker between them (Preferences → Interface → History) (tangency-labs#7710).
  • Extend two curves: in the Extend tool, Shift-click two curves to grow both to where they meet, joined in one undo step (tangency-labs#8392).
  • Ctrl+Tab and Ctrl+Shift+Tab show the next and previous design tab, and can be rebound in Preferences → Shortcuts (tangency-labs#8597).
  • Reverse trackpad orbit direction: a new option, off by default, in Preferences → Navigation, for natural scrolling on a Mac (tangency-labs#8484).
  • Move a component under another by dragging its row onto another component in the Browser; it keeps its place in the world (tangency-labs#8532).
  • Sketch Mirror about an origin axis: pick an origin axis that lies in the sketch plane as the mirror line (tangency-labs#4207).
  • Hex colours: the colour picker takes #rrggbb and #rrggbbaa alongside U8 and F (tangency-labs#7450).
  • 3MF export for multi-material slicers: file.export and file.save_mesh take objects: "component" to write each component's bodies as one object with parts; the default export is unchanged (tangency-labs#8187).

Improved

  • Conflicting sketch geometry in red: while a sketch's constraints conflict, the curves and points the failing constraint holds are drawn in the conflict colour too, not only its glyph; Preferences → Sketch → "Conflicting geometry in the conflict color" turns it off (tangency-labs#7249).
  • Notices in the bottom-right corner: notices and offers stack in one column in the view's bottom-right corner, with buttons ordered as in dialogs; Preferences → Interface → Notices → Bottom centre keeps the old place (tangency-labs#7959).
  • Render: an Environment editor (rotation, intensity, backdrop and ground), a Light editor, with show and solo on each light in the Browser, a Shot editor with aspect presets, thirds and safe-area guides, Effects, Check and Size presets in the Output editor, click, drag and paint to assign a look with Pick Up, copy and paste, a Wear editor for GPU path tracing, a Surfaces and references panel under Look, and a review dialog before a studio or environment is applied (tangency-labs#7231, tangency-labs#7265, tangency-labs#7232, tangency-labs#7233, tangency-labs#6431, tangency-labs#7459, tangency-labs#7999).
  • Browser and History: mesh bodies have their own icon, hovering a body says whether it is a mesh, surface or solid body, and feature folders in the History have their own symbol (tangency-labs#7059, tangency-labs#8522).
  • Sketching: selected points stay marked after the pointer moves on, the Create menu's families open beside their row on hover, and slow drags solve about twice as fast (tangency-labs#8714, tangency-labs#8713, tangency-labs#8631).
  • Orbit about the cursor on an edge or sketch line turns about the point under the cursor, not the edge's middle (tangency-labs#7358).
  • Save says where the design was saved in the status line, and Canvas and Decal say where to click once the image is chosen (tangency-labs#8705, tangency-labs#4396).
  • Move/Copy: changing Move Type keeps the move made so far (tangency-labs#8747).
  • Smaller things: origin axes in the Browser have a Show/Hide menu, long navigation-menu labels end in an ellipsis and show whole on hover, and the configuration table's Add Column menu has a filter (tangency-labs#8724, tangency-labs#8745, tangency-labs#8088).
  • Dialogs: status and refusal messages wrap at full width instead of being cut off, and a long refusal scrolls into view with its Create Issue button (tangency-labs#8460, tangency-labs#8506).
  • Report a bug explains how the report is submitted, and opening GitHub also copies the full report (tangency-labs#5615).
  • Pattern counts: a count parameter with a length unit names the parameter and how to fix it, and a count that works out to a fraction is refused instead of rounded silently (tangency-labs#5337).
  • On Windows, solidcraft.exe carries its version in the file's Properties (tangency-labs#8378).

Fixed

  • Opening: a design with a very long feature warning opens from its saved model again instead of rebuilding on every open (tangency-labs#8607).
  • Freeze: typing a huge distance into Extrude no longer freezes the app and fills the memory (tangency-labs#8540).
  • Sketch: a closed sketch whose ends are a hair apart makes a profile, circles trimmed where they touch stay joined, and Coincident, MidPoint and the two-curve constraints refuse picks that would shrink a line to a point or constrain a curve to itself (tangency-labs#7269, tangency-labs#8628, tangency-labs#8611, tangency-labs#8562, tangency-labs#8577).
  • Picking: zooming out no longer lets a click reach through a body (tangency-labs#7920).
  • Components: a component named like its design can be given an appearance, and pasting a copied body transfer no longer leaves a design that won't open (tangency-labs#8423, tangency-labs#8478).
  • Windows start-up crash: SolidCraft no longer loads a dxcompiler.dll another program put on PATH, which crashed it at start on some machines; it uses FXC unless DXC ships beside the app (tangency-labs#7923).
  • Move: distances typed as expressions follow world axes in a rotated component, as numbers already did (tangency-labs#8508).
  • Sketch: points held together only through a removed curve's end stay together, and Sketch Fillet no longer offers 3D sketch lines it can't fillet (tangency-labs#8640, tangency-labs#4177).
  • Preferences: typing in a number field or a drop-down's Search box goes to that field, not the Preferences search (tangency-labs#8663, tangency-labs#8675).
  • Speed: an extrude of a sketch with hundreds of curves names its faces much faster (tangency-labs#8643).

Translations

The Render workspace and point clouds are now translated in Bosnian, Croatian, Serbian, Czech, Dutch, French, Galician, Hungarian, Indonesian, Italian, Malay, Norwegian Bokmål, Romanian, Swedish, Traditional Chinese, Turkish and Ukrainian, with updates in Arabic, Spanish and English (UK).

Compatibility

0.26.1 writes design file format 43, the same as 0.26.0, so designs move freely between the two. 0.25.1 and earlier refuse a design saved by 0.26.x. Drawing files (.scdwg) are format 1.

Thanks

Thanks to 26 contributors.