SolveSpace: Light Weight Open Source 3D CAD
December 01, 2022
Recently I happened upon a 3D CAD package1 called SolveSpace. While not the only free and/or freemium package on the market, something about its dark, simplistic interface seemed intriguing. A quick download and install on my Mac OS machine, and I had it running. It boots up in around a second, and it takes up less than 30MB installed, both big positives in my book.
Booting up SolveSpace, you’ll notice that the icons are a bit pixely, and the drafting area is dark, both perhaps reminiscent of early versions of AutoCAD. Middle-click rotates your model, right-click pans around, and using the scroll wheel supposedly zooms. The scroll wheel zooming doesn’t work as I’d hoped, though this could be a consequence of MacOS, or perhaps customization software I’m running, but the + and – keys work as a slightly-less-convenient proxy.
There’s also a property browser panel that’s accessed via tab and gives information on the different steps in your model. Icons on the left provide modeling tools, along with drop-down menus. A wide range of shortcut keys are fairly accessible, and are perhaps just asking to be macro-padded.
(Caption: Angle bracket example in progress)
Down to Modeling
After fumbling around with the interface on my own, I finally went through the first introductory bracket tutorial. While you might expect a video, the text is quite easy to follow, and allows you to think through a few things and experiment. Interestingly, the tutorial doesn’t feature any dimensions whatsoever, which you’ll need to add later by going back in the timeline and applying them at the correct point.
Dimensions can be applied at a later point in the timeline but will be added as “REF” or reference dimensions–i.e., they tell you the feature’s measurements, but don’t actually allow you to change them. Other CAD packages typically allow for more flexibility in how driving dimensions are applied.
Another point that can be difficult to wrap your head around at first is that typically you’ll select the feature that you want to modify, then hit the icon/shortcut/menu selection to perform an operation. Doing things the other way around will result in an instructional–one could also say “nagging”–informational popup.
(Caption: The angle bracket somehow grew a body, arms, and legs)
Per a comment on this Hacker News thread: “SolveSpace is fun to use in a hard-to-describe way that FreeCAD is not.” While I have very little experience with (open-source alternative) FreeCAD, I have put many hours into AutoCAD, Pro/E, Fusion 360, and other CAD/modeling packages, and I’d have to agree with this. Perhaps it’s the stripped-down nature of the system, and the feeling that there’s just enough functionality available to let you get the job done, but nothing extra.
Or perhaps it’s the dark layout that I like. I also enjoy how you can easily manipulate points with the mouse until they’re fully constrained. While I haven’t gotten to this point, you get the impression that you could be proficient with this package in a day or two of solid effort and get to a point of near-mastery in a week (perhaps with some former CAD background). In other packages it may take you months or years to discover a useful feature. While I’m not certain, I get the impression that with the right setup/shortcut memorization you could really fly through simple models on SolveSpace.
SolveSpace requires you to properly order constraints, meaning that you’ll need to get to the right point on your timeline to insert and modify dimension XYZ. You can, of course, travel back and forth in your timeline, and in some ways, this is quite refreshing, making you really think about how you’re doing things. It’s probably quite educational if you’re getting started with solid modeling. At the same time, this can be difficult, potentially slowing you down.
The second, perhaps more serious, drawback to SolveSpace is that it can’t apply fillets or chamfers in 3D. From the outside, this may seem like a trivial thing from both a software and mechanical engineering point of view, but from my research it’s a fairly complicated problem software-wise. As a mechanical engineer, the lack of fillets/chamfers isn’t always a big deal, but it would very often be annoying, and even critical at times. There are fairly straightforward workarounds in some cases, but if you’re used to a couple clicks for a nice smooth lip generated on your part, you’ll probably miss this feature.
(Caption: Export for 3D Printing)
If you need a CAD package that lets you model up an individual bracket now and then, and you don’t have a lot of intellectual investment in something else, I’d highly recommend giving it a try. If nothing else, it’s a fun educational experiment, and the price of $0 makes it a very attractive option.
While I didn’t experiment much beyond this point, it’s notable that SolveSpace can do assemblies, work with linkages, and do 2D drawings, each of which has its own tutorial. You can also export in a variety of formats, including STL meshes for 3D-printing. Of course, as with any open-source software package, if you’d like to see it advance you can get involved. Code is up on GitHub here, and there’s a forum and contact info listed on the SolveSpace website.