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 (#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 (#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 (#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 (#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 (#11771).
- Modeled threads run down to a flat face, with no uncut block in the last turn, so a nut can bottom out (#11782).
- Hole: a hole on a face that another part touches drills its own part, not the other one (#12067).
- Interference: Compute runs in the background, so the window no longer freezes and Windows no longer reports it as not responding (#11541).
- Saving a design with many threaded holes keeps all of its saved states (#10601).
- Revolve: an axis origin written as an expression is no longer read as zero (#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 (#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 (#11203).
- Components: Capture All Positions no longer moves a transferred body twice when its source sketch is in the same component (#11364).
- Sketch: hovering over a large sketch no longer slows down (#9614), dragging one of several selected sides no longer runs ahead of the pointer (#11324), and dragging a constrained line by its middle no longer stalls (#11714).
- Crashes: on Windows a lost graphics device restarts the app instead of crashing it (#11109). A closed stderr pipe no longer crashes the app, CLI or MCP server (#10126). An exchange file with a curve that refers to itself is refused with an error naming the curve instead of closing the app (#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 (#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:
- 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 (#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 (#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.