"by compiling OpenCascade (OCCT) to WebAssembly"
I wondered what geometry kernel it was going to use! Interesting to me how few of these there are. Some of the solid modeling stuff is nearly 40 years old (parasolid) this must be hard.
I’m doing a bit of BREP for GIS and even in 2D with line segments only the problem is really non-trivial, a lot of edge (pun intended) cases to take care of. Type system helps enormously, so probably rust will be a win here (I think I saw a project along those lines).
That being said, for CAD (personal usage) I switched from Fusion 360 to Freecad 1.0 with almost no project and the latter is an order of magnitude faster.
Agreed, FreeCAD 1.0 is finally almost usable and supports assemblies. My main issue with it is that the bill of materials tool was DOA but it’s fixed in the main branch. There are still lots of quirks but these can be learned in a few hours of using it.
Worth noting there's also a fork of FreeCAD (Astocad, made by a former Ondsel developer) with some UI enhancements: http://astocad.com/
I really like this pricing model, reminds me of aesprite.
Either build it yourself for free, or pay us and we'll give you prebuilt binaries for convenience
I think the corner cases are likely hard, but the fundamental mathematical representations of the 3D geometry haven't changed. If the licensing cost of Parasolid and ASICs is reasonable, there isn't really a commercial incentive to create something new from scratch. The current market trend is consolidation as Autodesk and Hexagon when on a buying spree and bought up a lot of CAD and CAM software.
OpenCASCADE used to be commercial, but they couldn't find enough customers to keep on and it got open sourced after a failed commercial existence.
I wish more companies, especially university spinoffs, did this when they failed.
It seems so wasteful that poor marketing or leadership or whatever can lock useful innovations up for years while people better able to execute on them reverse engineer the work and/or wait for patents to expire.
The corner cases are hard, but the basics shouldn't be. I'd normally expect several basic ones and a few good professional ones. But that's not what we see...
We have OpenCASCADE, GCAL and Solvespace. The later two are missing quite a few features relative to OpenCASCADE. Then there is Parasolid, ACIS, and whatever they call the kernel in CATIA. There are a few around. But perhaps there aren't that many ideas for innovative features for people who are interested in the area to create something new.
Would love to read more about how these types of geometric problems are best approached.
>> Would love to read more about how these types of geometric problems are best approached.
Probably the most accessible NURBS kernel to learn from is the one in Solvespace. The entire source for the core NURBS is about 6KLoC:
https://github.com/solvespace/solvespace/tree/master/src/srf
My favorite file in there is ratpoly.cpp
It doesn't handle higher order NURBS or use knots. It's just the basics, but there are a lot of geometric algorithms in there. We're still trying to get the bugs out of NURBS booleans, but the high level algorithm is sound.
BTW it can also be compiled for web but that is incomplete.
Ugh, I wish I could read it but as I'm working in this space professionally reading GPLv3 code is... risky.
Been working in 2D with bezier implementation for our in-house CAD kernel. 3D parametric is limited at the moment, though.
Just because I’m curious, why the issue with reading GPL code? My understanding is that you would have to essentially directly copy and paste the code for the GPL license to apply to it.
Thanks, I'm a big fan of Solvespace, despite some small shortcomings that I usually am able to work around. I sometimes even use it to solve geometric problems. Much easier than doing it by hand.
I will have a look at the source code.
We don't really have a lot of options as far as open source geometry kernels goes.
OpenCascade
CGAL
Is there anything else?
There's whatever's inside BRL-CAD, and SolveSpace has its own too.
Not that there are all that many proprietary 3D kernels either - ACIS, Parasolid, and...?
Does anyone use BRL-CAD for anything? It must be capable but I can find very little information and resources about.
I for one have never successfully done anything with it. Couldn’t figure it out.
But it does have a kernel, so…