Code-based
- CadQuery - https://github.com/CadQuery/cadquery/
- build123d - https://github.com/gumyr/build123d
- OpenSCAD - https://openscad.cloud/openscad/
GUI (browser-based)
- Cadmium (abandoned, cool idea) - https://mattferraro.dev/posts/cadmium
SolveSpace - https://github.com/solvespace/solvespace
guile scheme, bindings in Rust and Python
personally exited to check it out for real constructive-solid modeling, as opposed to emulating that workflow over OpenCascade's (fickle but otherwise lovely) BREP modeling (ie. edges & faces) via build123d (which has been great but is increasingly vibe-coded :/)
discussed previously: https://news.ycombinator.com/item?id=12319406
a real constructive solid library (as opposed to emulation via modeling), with
Awesome because you can build a model, expose the parameters, and allow web users to generate a model to fit their parameters.
OpenSCAD supposedly supports Python now (https://pythonscad.org/), but I was not able to get it to work at all. I've fallen back to just OpenSCAD, even though it has limitations, at least I'm familiar with them. I'm mostly just waiting for improvements to anything that'll make it better than OpenSCAD.
It also seems to have a physics engine, a slicer for 3D printing, an embroidery mode, and a entire ecosystem of math crates (https://tang.toys/).
Whether any of that works – or whether it's pure LLM slop – is less clear. I tried to import a trivial STEP file, and it crashed my browser tab [1]. Every commit is co-authored by Claude.
This project improves on SolveSpace, but it does this by requiring dozens of mutually conflicting libraries. I create CAD videos, but for my students I decided against this project after seeing how difficult it was to compile.
A FlatPak installer might help with this installation issue.
Again, the Windows executable gets around these issues, for people still willing to put up with Windows.
export GDK_DEBUG="gl-prefer-gl"
I discovered this while trying out the compiled version (it's essential for the program to run at all), and for some reason I thought the FlatPak install would have done away with this oddity.
Again, because my students aren't necessarily techies, this kind of hacking shouldn't exist in a program released to mere mortals.
But thanks again for alerting me to this release version.
brew install ... and ./scripts/build_macos.sh
For windows instructions look equally trivial.
There was a recent video on it:
https://www.youtube.com/watch?v=T1VNpC0nwF4
If someone knows of a general introduction to 3D CAD which focuses on vendor-neutral descriptions of terminology and concepts, I'd be very interested --- I've done the tutorial for Dune 3D twice now (which is farther than I've gotten in any other 3D CAD tool), but keep getting hung up on subtleties/specifics which I have trouble describing for want of the correct terminology/understanding:
https://github.com/dune3d/dune3d/discussions/118
When I tried to write up the usage of a far simpler program, one of the things which I tried to do was define all terminology as it was brought up:
https://willadams.gitbook.io/design-into-3d/2d-drawing
are there any tutorials for 3D CAD which attempt definitions along the way in this fashion?
I've successfully learned quite a few EDA and 3D CAD tools that way. It's also effectively the way it's taught in a classroom - the teacher shows you and you copy.
I'm not sure there is such a thing. Maybe a drafting book would be a vendor neutral description of spec'ing a 3D manufacturable object on a 2D surface.
Otherwise the way the software accomplishes the task is kinda the point which will necessarily have methodology specific terms in it.
0: https://docs.dune3d.org/en/latest/why-another-3d-cad.html
Solvespace 3.2 is essentially done (try the latest edge build), we just need to get github to produce the correct artifacts (not sure what broke). After that we will be adding named parameters to be used in sketches, and I'll try to get back to the chamfer/fillet problem and NURBS issues.
That's actually how it works. Chamfers and fillets are handled by OpenCascade, so they can be applied to arbitrary edges. They only exist on the solid model though, so they are not integrated with the solver.
I'd be curious to see how native chamfers/fillets in solvespace would work, I imagine some amazing things could be done if they'd be part of the solver.
SolveSpace is a PITA in that regard. You also need to re-learn most terms that are common in other CAD software. It's a typical OSS thing.
Why care about professional users that have years of learning invested into an ecosystem of professional CAD software (including terminology)? Because these people will get you the most valuable feedback if you can get them to even play with your OSS CAD thingy.
AI has now balanced the scores here. Someone with decent CAD experience can now instruct a model to build something useful.
Based on lots of good libs out there that solve the basics. I.e. concentrate on UI/UX to build something better.
It's like Lego, hands-free. You have all the blocks and you have someone who knows how/helps you combine them.
If you have good taste, you can get nice results without understanding how the Legos where made or how to even combine them.
I don't think that every oss should try the copy what already exists. The best is when new approaches are tried. The same happened to me when I started using tilling window managers. "Professional" Operating systems don't have that, but I am sure that if more people would try them, many would realize that the workflow fits them better. So, my point is that there is no single best solution in terms of user interface or interaction with a program, and the fact that many people explore and share different approaches with their open source software is something I really appreciate.
1.2 https://news.ycombinator.com/item?id=41975958
1.1 https://news.ycombinator.com/item?id=40228068
1.0 https://news.ycombinator.com/item?id=37979758
(unfortunately, no discussion for 1.3, so I guess this stands in for 1.4)
I really like the space-key based command access and default shortcuts for all the commands.
In case anyone is wondering, Dune3D as a flatpak is about 33mb. FreeCAD is 354mb. I enjoy having simple solutions that get simple things done. Will definitely give Dune3D a try.
Source: I am one of the contributors.
For years I agreed with you - I tried FreeCAD multiple times, different versions, always sucked.
Then I watched this video [0] and discovered that v1.1 is different - and that it's good enough for solid reliable hobby usage. It's still a touch frustrating in a few areas (text, for example) but I've now switched over to it completely.
You can make it work. You can also save yourself a lot of headache by using other CAD tools. Personally I value "Freedom" so I will continue to use it despite the difficulties but that may not be the right path for others.
Even selecting things in the UI has sucked. I went in and increased the selection radius or whatever, that helped. But really, should I need to do this as a new user?
Getting the constraints to behave is like pulling teeth.
It also kind of sucks that you have to have really sparse sketches that only contain one closed figure. I gather you can create a "master sketch" and selectively project geometry into other sketches. But the last few times I've tried the app, I haven't gotten far enough into my sketches before rage quitting to validate the technique.
Right now I am back F360 with their hobby license wanting to escape their regular messing with the terms and conditions.
Curious what folks think of MOI3D (and if there is any other similar CAD tool other than maybe Shapr3D).
(1) agile Product Management,
(2) Product Design & continuous user-research,
(3) Improvements to test-driven development (TDD),
(4) transparent & open outcome-based roadmap,
(5) a vision to make the application easy to use for newbies in a maker-space, and (this is specific to my use-case),
(6) Improvements to the CAM module to make it easy to use this for CNC routers, and designing objects with sloped/curved surfaces.
- FreeCAD site: https://www.freecad.org/
- FreeCAD code: https://github.com/FreeCAD/FreeCAD
- FreeCAD forum: https://forum.freecad.org/
To echo others' comments: FreeCAD has improved significantly since v1.0, so I'm hoping this attracts quality & stability-minded develeopers, and a frequent release cadence.
Ofc. Let's reinvent the wheel, b/c improving the existing SW would be "too much effort", and btw NIH.
Doofus.
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones."
What's that guy thinking... Doofus.Well the readme states the following:
Solvespace on the other hand gets the workflow part right, but falls short by not importing STEP and the geometry kernel not supporting chamfers and fillets.
So I assume that's where that comes from.
Roughly every other week there is a new "The (programmable) CAD that fixes everything!" post on the front page, just for me to open them up excitedly and noticing that they use a mesh kernel and will thus never be able to provide fillets and chamfers painlessly (for the user). All while they are absolutely essential for a lot of designs, especially in 3D-printing, a well-placed fillet/chamfer can make the difference between an object that breaks upon looking at it funny and one that can bear significant load.
https://github.com/WillAdams/gcodepreview
Needs a full-on re-write to make the G-code export (and import) work well, but lately I've been focused on exporting to DXFs w/ colour/layer tagging which was just added as an import feature in the CAD tool my side-gig employer does.
Source: been there, done that.