This is a pre-release, for people who choose to test it. Designs saved in it use format 52. 0.40.0-rc.3 opens them with a notice and leaves out what it doesn't know; rc.2, rc.1 and stable 0.30.1 refuse them. Keep a copy of anything you care about before you save it here. Like the earlier release candidates, 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.
A new mesher
The code that turns a design into triangles, for the 3D view and for STL, OBJ and 3MF export, is now one mesher that lives in the kernel (#14003, #14029, #14033, #14242). It replaces two separate ones.
- Flat faces are exact and light. A box exports as 12 triangles instead of 124 (#13266). Flat faces are triangulated from their outline, with a few points added only where a face would otherwise be all slivers.
- Much faster. Across the 1,265 test bodies we compare meshers on, meshing for the view takes 16 s in total, against 253 s with the old mesher. A plate with 50,000 holes meshes in under 9 seconds instead of 103.
- Better-shaped triangles, with about a third fewer needle-thin ones, and no body has more gaps than it did with the better of the two old meshers.
- A face the mesher can't read is left out of the picture instead of the whole body disappearing.
One STEP reader
SolidCraft's STEP reader moved into solidcore, and solidcore's own reader was folded into it, so there is now one reader with the best parts of both (#13979, #14038, #14194).
- More files open. Of the 220 files in our test collection that any reader opens, this one opens 215 (rc.3's opened 195), and 151 come in with every body closed (135 before). Rings and tori, periodic splines, faceted solids and files written with short entity names now read properly.
- A bad face no longer stops the import. It is left out, the rest of the file comes in, and the warnings name each missing face with its entity number and the reason.
- Fixes: a curve style no longer colours the solid (#12984), an unreadable header line is skipped (#12928), a planar face with a slit in its inner boundary keeps its face (#13130), a surface model of open shells beside a turned sheet imports again (#13226), a round tube read back through STEP measures as built (#13535), and a face on a spline surface closed in one direction gets its seam, so such parts import as closed solids (#14712).
Regressions from the kernel move, fixed
Moving solidcore into SolidCraft's own repository brought a newer kernel with it, and 11 tests that passed in rc.3 broke (#13534). They're all dealt with in this build:
- Pleats join the case walls again, and a rim cut after a round on the other end builds again (#14348, which fixes #13536 and #13537, with a seam fix by @MarkusReichart). The cause was a cylinder read back from an imported wall a hair off its own shape.
- A fillet between two overlapping cylinders builds again (#13898).
- Offsetting a whole torus face works again (#13897).
- The side of a G2 corner next to its round is drawn whole again, and picking a fillet chain stops there (#14226).
- The G2 corner and open setback corner tests were updated to the kernel's new, deliberate corner shape (#13895, #13896).
What's new since rc.3
- Cancel really cancels. Cancel or Esc on a feature that's computing stops its kernel work and applies nothing (#14725, #13299). A new operations panel in the corner of the view shows progress for long operations, each with its own Cancel (#9460).
- Faster rebuilds. Extrusions, revolutions and sweeps name their new faces from exact geometry instead of meshing the body (#14646). A feature's bodies are checked on another core while the next features evaluate (#14112). Large flat extrusions such as a plate full of holes are about 10× faster (#14065), and joins of prisms about 1.5× faster (#14585).
- Notes: text pinned to a point on the model, always facing you (#6966).
- Assemblies: place a part by a rule such as Mate, Flush or Distance (#13508). Reference a placed component's origin planes, axes and point, and use them as joint sides (#12466, #10056). Capture Position also saves joint values, and Revert Position puts them back (#14315). An Angle joint keeps its part on the right side of the hinge past 180 degrees (#14350). Relink one placement of a linked component to another design (#12242). Convert Mesh, the Browser's body count and the changed-faces highlight follow every placement of a component (#14768).
- Sheet metal: one edge flange can split an edge into stretches, each bent to its own angle and height (#12804). An edge flange runs along the edge a cut left (#7278).
- Weldments: End Cap closes the ends of frame members with a plate (#8606).
- Sketch: planar loops of 3D sketch curves become profiles (#6447). Sketch text can be placed by its top, middle, baseline or bottom (#12447). A line started on an arc snaps tangent (#12405), the cursor's coordinates show over the view (#12702), and a dimension edit the solver gave up on is retried in steps (#12149).
- Hole: a counterbore sized to the screw's head (#12322), a countersink stops at the hole's depth (#13206), and holes no longer cut bodies that stand above the face being drilled (#12976).
- Construct: Plane, Axis and Point buttons that pick the method from what you select (#11341).
- Viewport: double-click a face to edit the feature that made it (#11401), keyboard orbit, pan and zoom (#6816), and the picture follows the mouse one frame sooner (#13993). The graphics API can be chosen in Preferences (#14097).
- Rendering: PBR materials in the palette (#7474), less speckle on polished metal (#9817), and quality controls with progressive previews (#12546).
- Import and export: 3MF files carry a thumbnail (#9450), dense SVG and DXF drawings insert many times faster (#14049), drop a PNG or JPEG on the window to place it as a canvas (#13992), and an export file name template in Preferences (#14294).
- Languages: Latvian is new (#6589), and Czech, Portuguese (Brazil), Spanish, Italian, Finnish, Ukrainian, Catalan, Polish, French and Arabic are more complete.
- Fixes: a body minus an exact copy of itself is empty (#14711), stretching a body of flat faces keeps them flat (#14470), mirroring a hole with its thread threads the copy (#13381), Combine skips a suppressed tool instead of failing (#13892), the Corner, Base and Center fields of the primitive dialogs read typed text as the size fields do (#14764), and quitting with several unsaved designs asks once (#11683).
Report problems
Open an issue with the design if you can, and say that you're on 0.40.0-rc.4. Report an Issue in the app fills in the details for you. Geometry that builds wrong, a STEP file that opens worse than before, or a design that rebuilds differently than it did in 0.30.1, is what we most want to hear about.
Known problems
19 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.
- 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.
- Not in this build yet, because the 0.30.1 versions relied on the display mesh and their exact replacements aren't written: Extrude Cut To the far side of a curved wall (#8634), and selecting a joining extrude in the timeline can still light round walls an earlier feature made (#11286).
Compatibility
0.40.0-rc.4 writes design file format 52 (rc.3 wrote 51, and 0.30.1 writes 48). Format 52 adds 20 changes, among them notes, assembly constraints, frame end caps, origin planes and axes of placed components as references, captured joint values, edge flanges split into stretches, profiles from 3D sketch curves, vertical alignment of sketch text, a revolve axis from another sketch, and render quality settings. 0.40.0-rc.4 reads every earlier format. 0.40.0-rc.3 opens a design saved by it with a notice and leaves out what it doesn't know; rc.2, rc.1, 0.30.1 and earlier refuse it.
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.4.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 the more than 100 people who contributed since rc.3.