I've recently moved over to Alibre Atom3D, which, while not open-source, costs $200. Once. Then (as long as your host OS doesn't change too much) you can access your designs forever. It runs on the ACIS kernel.
"Browser first" and (from the readme) "Beyond that, I will try to monetize by offering a hosted version of the software as a paid product." reads to me like this project is doomed to either fizzle or to grow and transform into an open-core, subscription-requiring product, accumulating more complicated dependencies to install and "security features" that make it harder and harder to run in truly local fashion.
Your designs are wide open for anyone to see, but I can live with that for hobby stuff.
I one time had an issue where I messed up and had to post on the FreeCAD forum and got two of the best responses I've gotten anywhere on the internet ever. Two people opened up my model and took screenshots highlighting where my issue was and gave me several suggestions on how to improve my model in other ways. The initial time investment was substantial and there are still a few workflows that could be smoother for me (attaching a sketch to a different face after it's been created), but that's fairly minor.
But there’s no denying that FreeCAD is still a bit of a lifestyle choice :-) I love it, but I don’t try to sell everyone on it yet.
It might be possible to predict which edges would have problems, but I think that would involve repeating geometry calculations outside the geometry kernel?
Specifically the main problem with fillets/chamfers in OCC is that the new face cannot completely consume/replace an existing edge.
That is to say -- I think!? -- that one of the edges of the new fillet/chamfer is always an existing edge just displaced, and no edges are destroyed. If an edge would be destroyed, then it fails?
But this is just my colloquial/folklore understanding.
There have been newer versions of OCC that FreeCAD has not yet switched to, I think. (And there is a new (Chinese) fork, called OpenGeometry.)
So maybe there are some fixes already in the pipeline or in the future. But they are somewhat out of the FreeCAD project's control, is my understanding.
I've invested several hours already in trying to learn FreeCAD and achieved nothing. Its a hot mess that desperately needs a new UI.
I don't know if you can really get away without learning general things about CAD systems if you want to make complex things, because those general things are so influential on the existence and design of real world objects.
It's like saying "but I don't really want to learn about different programming languages or software design, because I only want to write apps for iPhone."
If you want to make very simple objects and not learn deeper concepts, use TinkerCAD. It's fine. Weirdly competent in places; people pull off crazy stuff. It uses a simple physical world model.
Beyond that, you need more abstract tools. Ultimately you have to decide whether you want to exist within the (shifting) free plan limitations of a commercial cloud package, spend money on something like Alibre Atom3D, pay the cloud firms, or use something open source.
I'm not sure if it should be surprising that the open source systems are more of a commitment.
FreeCAD (main branch) has one fundamental limitation which is being mitigated -- the topological naming issues -- and some smaller issues to do with fillets/chamfers, but apart from that is a disorganised-but-competent, open source workbench-based system.
And the tradeoffs are not straightforward. This is less like Photoshop vs GIMP and more like ArcGIS vs QGIS. Is ArcGIS initially more coherent? Yes, allegedly. Is it universally more powerful? No.
FreeCAD is really a lot like QGIS, IMO.
You can learn QGIS, and when you learn it, you might decide that the freedoms and flexibility it offers are worth the pain. Or you might front up the cash for ArcGIS.
The problem was not about getting away with it without learning general principles.
Of course, those 100 hours taught me about principles that were applicable to OnShape as well, so it’s not entirely apples to apples.
BTW, the issue was never TNP. It was everything else. The absurd separation between Parts and bodies and whatnot. The 5 different assembly benches, none of them good. The crashes. The way you need pixel precision to grab a vertex or an edge. And if some operation cuts a part in multiple disjoint pieces, only one survives.
My wife told me to stop doing what I was doing because I ended the weekend with way more frustration than the work week.
> The absurd separation between Parts and bodies and whatnot.
Again, Parts/Bodies, it's confusing (and Part Design should be called "Single Body Design" IMO) but there are videos that explain the difference.
(I gather it comes from CATIA, and CATIA users are comfortable. Either way you don't have to use both; it's possible to never touch Part Design and do absolutely everything.)
I don't think I got it initially but now the difference is useful. There could be more work to allow non-Part-Design Parts to be wrapped in Part Design bodies. There's a macro (pdwrapper) for this, and Realthunder's branch built it in.
There could be better explanations on how Part Design works, how you build a Part Design Body from existing Parts and how you later combine them.
> The 5 different assembly benches, none of them good.
I feel this pain and I mostly avoided it by just using static placement. There's a new built-in Assembly workbench with a sophisticated solver that is being added in 1.0 which will land in the next two to three months (and is already in 0.22-dev and Ondsel 2024.2). I am going to dive in with that.
> The crashes.
Not a problem I have on the Mac at all now; 0.21 is really stable. Though startup crashes are common on Linux due to W****nd and the complexities of compiling support for it. The Flatpak appears to solve those. Ish.
> The way you need pixel precision to grab a vertex or an edge.
There is a preference setting (a newish one) that makes edge selection rougher/easier.
> And if some operation cuts a part in multiple disjoint pieces, only one survives.
Only in Part Design, which (in mainstream FreeCAD) is concerned with only one contiguous object. In fact, that operation actually fails. (A Body can be started with a compound of multiple pieces, but the first feature has to join them).
RealThunder's branch can support Bodies made of separate solids, and maybe that will come to mainstream once the TNP fix, which is a prerequisite, is in.
Outside of Part Design, objects split as you'd expect.
I don't think FreeCAD is perfect. That would be silly. But none of the "free" plans of the commercial cloud packages are right for me.
And I asked countless questions on the forum as well. People were always very helpful.
But there’s a point where you just give up.
Having never used OnShape before, it literally took me half a day to get something done and submitted for external production. I tried that design first in FreeCAD, after those 100 hours, and got nowhere.
Nice files you got there. It would be a shame if they suddenly become unreadable, eh?
Even the so called "open" core is a joke. Just try to add anything useful. It will get rejected in favor of a paid option.
The whole thing is just an offensive anathema to open source.
Alibre Atom3D is the entry level package, but the whole thing seems very much like the Affinity suite model. It looks very good.
I'm just wondering why QCAD doesn't seem to get much if any mention on HN when CAD tools and open source comes up.
3D is where the excitement is, but also where the difficulty is from the kernel perspective.
I think it's a shame that LibreCAD has stagnated and diverted, particularly on usability. QCAD has one of the best 2D CAD UX I've used, akin to AutoCAD but more light and nimble. Exactly what is needed for most 2D CAD.
If you need a powerhouse, then you really need 3D anyway, and most likely you aren't a hobbiest if that's the case. For 2D, it's QCAD all the way. 3D is nice, but 2D gets the job done 9/10 times. 3D is overrated.
Contrast with Solvespace (or FreeCAD, or any of the popular commercial parametric 3D CAD programs), which lets you specify relationships (constraints) between elements in 2D and 3D. The shape of your part is the finished result, not the starting point.
Indeed. This is a great application for Rust. It's something that's complicated, difficult, and has to work right.
For Rust itself, maybe, but not for its community.
Interesting. Any chance you could explain why fillets are hard(er)?
1. Surface tangency matching - perfectly matching the tangent of the connecting surface on either side of the corner.
2. Edge tangency following - you select an edge, and the fillet should be able to follow along all connected tangent edges.
3. Edge reference tracking - when you modify the model further up the feature tree the kernel needs to keep track of that edge, even if the surfaces that make it drastically change or are split.
All three are hard problems on their own, once you connect them all it becomes a great indicator of the capabilities and stability of a parametric kernel.
My assumption (I've not looked) is that you could offset the surfaces from the two sides (say A and B), and then calculate the intersection of an offset of A with the original B. Then do the opposite for the other side. I think that will give you two edges that will produce a consistent radius.
Offsetting surfaced and calculating intersections aren't exactly easy problems to solve on their own. Fillets are hard!
(Solvespace is awesome BTW! If I had the time (or the expertise) it also makes a brilliant foundation for all this)
Yeah, offsetting surfaces is harder than curves ;-) This was my early stab at doing chamfers on extrusions: https://github.com/solvespace/solvespace/issues/453#issuecom...
I know how to do it better now, but ugh... not enough time.
The impression I’ve gotten while learning FreeCAD is that making a CAD ‘just work’ is incredibly difficult and the commercial packages probably have a lot of very messy workarounds and heuristics in place to work like they do.
FreeCAD’s (well, OpenCascade’s) issues with fillets and chamfers appear to be most acute with a subset of your third point: sometimes adding one involves the new feature fully consuming another edge. This is unsolved in OCC and it’s why sometimes even infinitesimally changing the depth of the fillet or chamfer is enough to stop an edge being destroyed.
SketchUp has a lot of community assets but these still leave you hanging almost immediately.
You need to be able to scrounge up drawings of certain parts by part number that can be inserted quickly.
This is surmountable but I think it would take at least a decade to reach parity...in a best case scenario where CADmium is readily adopted.
I would put in the time to learn CADmium. Having worked in FreeCAD some and SketchUp moreso.
I hate that I can't automate things easier or build my drawings from scriptable components--like a XAML file.
I’ve been playing around with the weekly version and using the OpenDark theme. It looks pretty slick.
It seems like a really exciting time for open-source CAD (hopefully!).
Apparently, there are now > 500 bugs open.
When commercial software has bugs, you don't even know they exist often. Sure, but there are also ways to make bug free software, but hardly any open-source software exists that uses those development techniques.
It's still better than FreeCAD, though.
I've never once run into something that they didn't have a workaround for, and then eventually fix. Sometimes it takes a service pack or two.
They out out 4 or 5 service packs every year along with the major yearly releases, those service packs are basically entirely bug fixes.
You may want to look into switching VARs if your not happy with your support.
We've always lagged a year behind the current SW release to try to avoid getting hit by the latest and greatest bugs.
I think we just hit more edge cases than other companies. We have half a TB of stuff in our vault (about 250k files), going back to 2012 for the first import. Lots of legacy files, fairly complex assemblies, heavy use of some tricky stuff like the sheetmetal design tools (where we tend to find the most bugs). And then there's Solidworks Electrical, which I don't think anybody is set up to support well, as it's still a fairly recent acquisition from Trace Software.
If people have no alternative in their field or the alternative requires discarding years of experience, the incentive to fix bugs isn't as high as it could be. That's how you get problems like Excel invalidating data with automatic formatting for decades.
Particularly younger engineers have their mind blown over the concept of not immediately upgrading all your software just because there's a new version.
In the physical engineering spaces, it's more valuable to keep using the same software version you started a project with, rather than have hundreds of thousands of dollars in damages because of a dickhead bug.
About 10 years ago they released a new feature, slot sketch tool, so instead of drawing 2 circles, two lines, trimming, now it's one click.
If you use the new feature to save significant time, like me, it's wonderful.
You see the same problems with a lot of “flagship” oss ware. Gimp seems to have the same awkward feature set for 25 years. Apparently the only thing that has changed is they no longer compile against Gtk 1.0, and they decided to have all images in a single window.
Still can’t do smart background erase.
Inkscape kinda works, but it always seems like attachment points for easily alignment, and a non sucky text editor are forever out of reach.
I’m sorry. I know software is hard, but it’s been literally decades of stagnation.
Off the top of my head:
- Full color management
- Non-destructive filters
- 32-bit per channel precision
- Late binding CMYK support
- Unified transform tool
- Vastly better selection and cropping tools
- Vastly better text tool
Should I go on? :)
This is a simple tutorial task. Is it this easy in Gimp? No. It’s not. But hey, we have the same crappy ScriptFu plugins from a quarter century ago. Anyway, you have the source! Shut up and be grateful you insensitive clod!
Seems fair
No, not really. You did say 'feature set'.
> A bunch of data loading crap,
Sure, if you like editing with color fidelity loss.
> but nothing substantial on the usability.
Except non-destructive editing is a major UX improvement.
Except unified transform tool is a major UX improvement.
Except... Well, you get the idea. And I barely got started.
It's almost like you just hate the project and won't accept any changes they do.
I too have my fair share of frustrations with the project — enough to quit it as a team member a couple of years ago. But somehow I don't go around pretending big changes aren't big bc I'm feeling petty all of a sudden.
I gave a concrete example of a task that is trivial in 2024, and it just does not work nearly as well or as easily. It’s the same functionality of 30 years ago.
Instead, you’re sticking your fingers in your ears and screaming, “it is progress!” Yeah, well maybe technically correct, but the gap has widened. As a project it should be shutdown. It’s zombieware.
I think Kritta is the new flagship OSS image editing software. I don't use either, but that's my impression.
I basically want to extend the base of an Ikea lantern (Enrum); this require creating an (irregular) octagonal shape, and then creating a slot so that the lantern base can sit on it.
I had some distant memories of modeling stuff in Solidworks for a project back in university, so I'm not starting from zero.
I was able to finish my design in Fusion and redid it in one evening in Onshape. As for Freecad... I still don't know how to do it. Or rather: I could probably do it, but only with so much more googling on how to do basic stuff that it is discouraging to even thing about it.
I think the main issue is that Freecad generally expects you to know exactly what to do, and has very poor affordance.
Let's take the very few steps for instance. In order to create my lantern "shoe", I first need to recreate its base. It's some sort of octagon, so the plan is to draw an octagon, extrude it and then probably repeat the operation with several other octagon to carve a slot for the lamp.
So the very first thing is to create a sketch on the xy place. In both OnShape In both Fusion and OnShape, the very first menu item in the toolbar is the "create new sketch" one [1][2]. So you can immediately click on it, then chose you plane, then start to draw.
In Freecad though, the first thing in the toolbar are.. the camera controls (which are somehow redundant with the interactive cube view of the main area). In fact, you cannot even create a sketch from the default toolbar; at best you can create a Part.
In order to create a new sketch, you need to go to the dropdown menu. This menu is ordered alphabetically. So the first item is "Arc", then "Draft", then "FEM", ... If you do not know the jargon and/or is just starting out, good luck finding where to next ("what's the difference between Draft and Sketch ?" they would say). And even select Sketcher from the combobox, the first controls you see are still the camera ones. Worse: the "create parts" button from earlier is still there ! [3] And so the "new sketch" button is hidden on the right side of while it's probably the very first thing you want to do.
And for the very short time I spend trying Freecad, issues like were constant.
There's seems to be some open issues related to this in the Github issues viewer, but no tangible commitment as far as I know.
Isn't that what OSS project always say?
Let's just say I've seen their (internal) bug trackers.
TLDR; you couldn't be more wrong.
When OSS software has bugs, at least someone with an interest in the issue and the skills can do something about it.
For closed source software nobody can. Even the people working at the resp. company who are developers rarely or never decide about priorities.
And as an added hurdle, adding features always has higher priority as it drives sales.
The attachment editor is horrible, for instance. If you want to attach a sketch to a datum plane, it will be attached at a random orientation. There is no preview for this, since datum planes are just planes, except you know, the part where it actually is an LCS with a default attachment orientation internally. So now you have to go into the sketch and draw an arrow pointing up and then rotate the sketch into place so that it actually points up. You will have to do this for every single sketch. It is so painful and an every day occurrence that surely someone should have come up with the idea of fixing it years ago, right?
There is usually no preview for additive parts unless it successfully creates the final model. The idea of displaying a transparent preview of just the operation itself never occurred to them. Also, there are hardly any interactable UI features such as draggable arrows in the 3D editor, you mostly enter numbers in the left panel.
I haven't had much trouble with "bugs". The attachment editor thing is considered a feature by the way.
Tried using some other program but I loved the way solidworks let's you create parts, and then some other features where its hard to exactly discribe the exact thing but for me solidworks seemed so much more intuitive.
I dropped my summer internship money on the version which was a few hundred bucks. ...pretty sure it was cuz I got the student or the hobbist deal.
https://www.solidworks.com/solution/3dexperience-solidworks-...
Does parasolid not fit this requirement? The capabilities I've seen in Plasticity are very impressive. Or do you specifically mean FOSS?
The more I use CAD platforms, the more I develop the sense that general-purpose CAD is much less useful than single-purpose applications that provide tailored solutions to narrow problem domains. SVG/DXF/DWG output is a plus, but I think a drawing software that works for high-volume machine parts, one-of-a-kind architecture, highways, 50-mile pipelines, circuits, urban transit plans, and art is the wrong direction. I use industry standard roadway design software and a "road" does not exist in the object model. Horizontal, vertical, and sectional components are all independently defined despite these things being inseparable and having some very obvious and well-specified rules about their interaction. I really think designers should spend more time thinking about outcomes and less time telling the computer how to display them.
So as a model builder you end up trying to build these higher-level abstractions into your model, where the parameters are your top-level interface.
I think CAD is so much like programming in those ways, although I could just be biased since I’m a software engineer.
Some of the wisdom from programming would do well to pass onto design software. Like how strong type systems can provide safety by pushing rules to compile time and make some errors unrepresentable. Meanwhile, I can fire up Microstation, draw roads crossing at the same elevation with no intersection (think stops and signals, not geometry) between them. Or a drain culvert could terminate in a big Hello Kitty picture. These things should be impossible. If the task is designing a road, I don't need the ability to draw anything I can possibly imagine. I really need the software to know what a road can and can't do, produce a model that obeys those constraints, and to give me files and documents I can give to an owner and a contractor which convey an accurate understanding of what that model is.
Then it is just up to you or your organization to come up with a design rule set that ensures your boards can be manufactured by the board house.
The user works with rich domain objects that limit the possibilities to what actually works or is practice; much like a game level builder. This allows non-experts to design solutions in this particular domain, which of course is great for business / sales.
The biggest reason this hasn't happened so far is the lack of a truly capable parametric kernel, Truck, the kernel that Matt is using looks like an incredible project and exactly whats needed. The only other kennel till now that been close to being whats needed is OpenCascade, but its lacks important features, is buggy and at times quite unstable.
Once Truck (and CADmium) lands stable fillets (surprisingly one of the hardest features to make stable) it will prove itself as the perfect successor to OpenCascade and and the perfect platform to build the future of open source parametric CAD upon.