This is a really good example of the issue with OS CAD.
Fundamentally the issue comes down to a complete lack of capable 3D Parametric CAD Kernels [0]. These are the Linux kernel to a Linux distribution. They are the central core that implements the fundamental geometric structures and operations.
The article comments on the difficulty with filleting (putting a radius on an edge), this is a fundamental operation any cad user would be doing many time a day.
FreeCAD is built on top of the OpenCascade [1] geometric kernel, it has a legacy back to the 80s like most kernels, and is by far the most capable open source kernel. However, it lacks stable support for may geometric operations, including filleting.
The only way we will see industrial level quality open source parametric CAD is with either a new modern kernel (I don't believe OpenCascade can be brought up to level), or if one of the other closed source kernels goes open source. A new kernel will be many 100s years of person work to produce.
OnSpace (mentioned in the article) uses the Parasolid Kernel [2], the same kernel used by SolidWorks and many other packages. If you want to build a commercial cad package it by far the best option.
> The only way we will see industrial level quality open source parametric CAD is with either a new modern kernel
Is there even open literature (books, papers, anything) for someone to understand what a modern kernel would look like?
I don’t doubt it would be a formidable challenge to develop one, but is the shape-of-it/api and interface of it well understood, or is this knowledge siloed away in a few companies?
Just to add to this, fillets may seem trivial but they are a good example of the difficulties in parametric cad.
Fillets are added to edges, edges can be formed both by a single feature (say an extruded 2d shape) or through the interaction of two or more other features (think of two extrusions 90deg to each other interacting and forming an edge). They can also link together or become unlinked via changes.
Referencing these edges, and keeping track of that reference through changes to the parameters is fundamental to parametric cad. It's one of the areas that OpenCascade struggles with.
Judging by where it fails, the filleting itself in OpenCascade has no problems keeping track of edges, where it seems to have difficulty is 1) saddle points, and 2) where the fillet size makes it intersect with a feature it's not responsible for.
A fillet breaking when a parameter update changes the topology is just a specific example of the topological naming problem. I don't think that's specific to OpenCascade. In fact, just thinking it through, I wouldn't be at all surprised if 2) above is the same thing: the fillet itself changes the object topology enough that the basis edges for the fillet get lost. If so that's a Freecad thing rather than an OpenCascade thing.
Maybe someone who's worked in that area can comment, it might be one of those things that gets better in 0.21.
FWIW, fillets give Solidworks trouble too. Never build child geometry on top of fillet parents if you can avoid it because it's likely to blow up on later rebuilds.
True, but this isn't having so much to do with the fillet itself, but with the child geometry referencing outputs of the fillet command like edges and surfaces of the fillet. It you go back later and then change the fillet radius, delete it and add another in its place, etc. Those references get messed up.
Siemens is currently trying to make the XT exchange file format into an international standard, perhaps they could overcome the objections to this by making Parasolid open source.
Parasolid is really good and that's probably because it's a licensed product used in many commercial programs, so it's well supported. Maybe going GPL plus commercial could work, but it might just kill it.
They tried to standardize a previous version and were voted down, the reasons for negative votes have not changed, one of them is that the proposed specification isn't enough to implement a clean-room copy.
I will follow up on the open-source idea when we start discussing the next vote.
The current ISO standard for JT just has an older version of XT as an informative annex, there is a proposal out for voting to make a newer version a normative (required) part of the standard.
Maybe it is intended as a marketing feature "Our exchange file is an ISO standard but the CATIA one is not".
FreeCAD actually does filleting, apparently. Two different tools. I think the article was claiming that filleting was broken somehow in FreeCAD, not that it didn't exist. It would of been more interesting if they mentioned what problems they had.
Just tried to do that exercise in FreeCad (0.20.1) and observed following issues with fillets.
Initially for one of the inner corners I had selected 2/3 edges for filleting. This caused fillet to bug out and some of vertices be position in completely wrong position far from where they should be resulting in visibly broken self intersection geometry in the are of that corner. Once I selected all 3 edges as asked in the drawing for exercise fillet was fine. But I don't see why it should have failed if the intention was to create model with 2/3 corner edges filleted. In other parts of model corners with such fillets worked fine.
Second problem was once I changed the angles and dimensions from phase 1 to phase 2. (I slightly cheated by not handling the bottom part properly but that's more of my failure read the drawing). After changing angle and dimensions fillets broke, and I had to reselect which edges are supposed to have them. (The topological naming problem). Which is slightly weird because the topology of model shouldn't have changed from those dimensions changes, but maybe there was a slight change in how boss intersects with bend, thus changing topology. In which case having to redo fillets is annoying, but slightly more understandable.
Third issue was that in the second phase it failed to solve fillets when radius was greater than 1.1mm (drawing asks for 2mm). Not sure why would it fail. I would understand if I asked something crazy like 10mm which would result in some degenerate geometry. But with 2mm it should still be sufficiently far from where it causes weird intersections. Again my best guess is the area with inner corner at the base of boss. There is short edge where outer cylinder of boss connects to bent corner instead of flat part.
It's more powerful and full-featured than usually given credit for. But there are a lot of common things that are very annoying and janky to do. Filleting is one of the first things that will be an unpleasant surprise to new users, as it's a deceptively difficult problem, and one that commerical packages put of effort into making easy for users.
Onshape is a decent middle ground here. The BREP kernel (parasolid) is obviously closed source, but the standard features built on it (extrude, loft, etc.) are open-source and written in their own bog-standard c-family language of FeatureScript[0]. You can write your own custom features pretty easily, and the feature inputs and outputs are actual BREP. It's easy to mix and match manual modeling with standard features and automated modeling with custom features.
Although BRL-CAD is powerful, it is still a collection of tools, not a solid application, which makes it pretty hard to use and to comprehend for a regular CAD user (designer). From their website:
BRL-CAD is a suite of more than 400 tools and utilities. The suite of applications are intentionally designed to perform a succinct task so that they can be chained together, scripted, and expanded upon in order to provide powerful flexibility.
I think someone has to develop a decent GUI for this package to make an alternative to FreeCAD.
I spent the last year working closely with someone who spent their entire career entrenched in one of the big boy CAD software companies in one of those very technical roles you do when you avoid management your entire life. He had a lot of great stories. Anyway, while I don’t really have an opinion on the matter, I feel like sharing his opinion here despite not totally understanding the reasoning behind it. It seemed his opinion was that Onshape had great potential to disrupt the industry, but he explained in much funnier terms a tidal wave of celebration and relief washed over his company and the rest of the industry when PTC bought Onshape out. He seemed to think nobody could take a great product and run it into the ground like PTC could, as if they were up there with legendary failures like Microsoft buying Nokia, Yahoo/Tumblr, AOL Time Warner, etc.
I am a mechanical engineer and CAD user (never worked for a CAD software company).
I second this feeling. OnShape was founded by the original creators of SolidWorks before it was bought by Dassault. It showed great promise in being efficient, powerful, user friendly, built in PLM (SCM for CAD basically) and surprisingly low cost. Compare hundreds a year for a fully loaded OnShape seat subscription to about 20k/yr/seat we paid for CATIA and some bells and whistles (PLM, FEA, etc).
The day OnShape was bought was PTC/Siemens is quite comparable to me, to the HN feeling when Adobe recently announced the purchase of Figma.
Exactly, it's like when eagle was bought by autodesk. Also to add to this, solidworks can be had for ~4k for a perpetual license and ~1300 a year after that for maintenance. So it sits right between onshape and stuff like catia cost wise.
My first job out college was at PTC first in tech support for Windchill and then as a dev for Windchill. Windchill is PTC's PLM/VCS for CAD files. I never really touched CAD. I launched PROe a handful of times, but mainly to test some integration into Windchill.
Over the course of 3 years there, I saw maybe 6 or so companies bought by PTC and nothing ever really done with them. Probably the most successful was FlexPLM which for some reason was built on Windchill to offer PLM type software for the apparel industry. It only survived because PTC ignored it.
PTC is a company full of too much bureaucracy and managers all trying to push features over completeness.
The article has a small mistake, BRep stands for Boundary Representation, not Binary. Secondly, for point of reference, the basic design that the author uses as their benchmark that took them approximately an hour to an hour and a half to generate on these tools would, for me, an experienced user using a professional tool (CATIA in my case) take no longer than five minutes. Maybe more like sub 2 minutes if I was pushing it and the shape was known ahead of time. Just wanted to give people a perspective if they weren't aware of how quick something like that can be done by and experienced person using a professional tool.
Exactly. In my case, it would take 5 minutes in Solidworks.
This really adds up when you design hundreds or thousands of parts and assemblies a year. The added cost of the software is negligible in comparison to the labor savings.
I do a lot of electrical/mechanical codesign, and I save more than the cost of my SolidWorks license every time I don't have to re-fabricate any parts because everything fit together perfectly the first time.
Yep. Here's a video of a CAD competition, with experienced Onshape user modeling simple rectilinear parts[0]. Video is sped up, but live modeling took under 3 minutes per part[1]
It is hard to say because it is not explicitly stated in the article, but I think the author was evaluating unfamiliar programs.
Trying a program which you are unfamiliar with in a domain you are experienced in is very frustrating, your muscle memory is all wrong, the tools you would ordinarily use are missing, and you have no real feel for how the new tools would work.
I give the author a pass for taking an hour and half on the shape.
OnShape is amazing. Solidworks paradigm, not surprising because the founders are ex-solidworks. Just beautifully done web app, works great on iPad and everything.
And a really nice community-driven plugin capability. From hex infill for 3D printing to mesh deformation, there’s probably a plug-in. And the assemblies and modeling are very nice.
For top-down parametric design I don’t think you can do better.
I’ve got no connection to onshape other than having used it for years, for probably hundreds of models. Love it.
I passed this over just yesterday and went with a fusion 360 demo but you’ve convinced me to give it a shot.
I’ve been having issues with my cheap-ish peristaltic pumps and realized I’d either need to spend way too much or build/3d print something myself in order to resolve the issues.
The cloud aspect of fusion seriously kills my enthusiasm for it.
Note that OnShape is pure cloud (web app) if I understand it correctly -- so perhaps it provides the best parts of a web native app too.
The Fusion 360 move to cloud appear to be purely aimed at justifying forcing a subscription model for Fusion stuff. Though the monthly price for hobbyist isn't half bad.
Don’t believe the hype, onshape is like a Cad software on Citrix. It’s not spreading the cost of computing a complex fillet over hundreds of machines (or even better, running the same operation in the browser and the cloud and letting the fastest one win). They spin one EC2 for you.
So you really don’t get any benefit from the cloud.
the cloud benefit is in the version control, branching, merging, multiplayer, never having to send files, always working in the same version as everyone else. It's in everything communication, not in quickly calculating a fillet.
I also got very sad when I learned it was bought by PTC.
I'd also recommend giving Shapr3D a try. Its an extremely nice up-and-coming CAD suite. Very little cloud integration as well (they only very recently added model syncing to your account). Their lineage is definitely as an iPad app, but its been ported with perfect fidelity to MacOS and Windows, and I think that touch-first small-screen lineage has forced them to produce a tool that's so quick and productive to just pick up and get to modeling. Its also built on Siemens Parasolid, same as SolidWorks and OnShape.
Bizarre, does this mean Shapr has parametrics now? I tried it last year and it didn’t offer that, so I’ve ignored it since. I loved the UI and actually liked the iPad experience too. Maybe it’s time to give it another chance! Thanks for the tip.
I have to say, my biggest hesitation about these kinds of software is knowing anything I create is inevitably trapped behind a subscription. $50/month to maintain access to my designs is really steep! I suppose I can output static models, but to use parametric features, I’ll always need to be subscribed.
I did the Model Mania 2001 part 1 challenge in a little under 18 minutes. The part 2 challenge involved only changing the 45 deg to 55 and the height of the center of the bore, so less than a minute.
I know Fusion 360 but it's amazing how fast Onshape can be.
While it’s sad to depend on a web service that could be gone tomorrow, it’s not like we really “own” software installed locally either. License agreements contain the phrase “the software is licensed, not bought” for a reason.
For example the software I sell in my day job has an expiration date of a year, there is no perpetual license. It literally won’t start after a year. The difference between that and a web service is pretty slim.
It's not. Ask anyone working on MMO server emulators. Once the server is gone, that's it. With thin browser client you might as well create a new CAD software from scratch. Having actual software on pc means you can at least attempt to crack it.
Solidworks is still available to buy as a perpetual license -- pricing starts at $4200 for Standard. It costs $1500/yr for "maintenance", but that's optional if you don't need updates.
~20 years ago I interviewed at a large CAD software developer. The thing I remember most is when the interviewer pointed at six desks in the corner and said "that is the team doing fillets and blends".
It is relatively easy to get to a 90% solution but really handling complex evaluations for demanding users is a massive undertaking. Hard to see open source software getting there.
The business model for all CAD software companies inevitably trends toward stagnation and lock-in, because CAD software companies don't use CAD software -- they just develop it. The motivations are self-defeating.
Typical CAD companies can only ever try to keep up with user demands and keep them from leaving to greener pastures, while squeezing customers for profit. Examples: Dassault Solidworks (stagnant), PTC ProE/Creo (dying), OnShape (bought by PTC, on the road to death), Autodesk AutoCAD (stagnant), Inventor (stagnant), Fusion (new, cloud-based, pay-to-use vending machine).
The only commercial exception to this is CAD software from Siemens, which is forty years old and continues to get better. Siemens is an infrastructure company [0], not a CAD software company. They use the software they develop to do the things their company does. Their CAD products -- NX (top-tier) and Solid Edge (mid-tier) -- are used by Siemens to design the hardware (motors, turbines, and so on) that make up their core business (trains, generators, etc.). Revenue from selling CAD software is just a side-effect.
Improvement and maintenance of NX & Solid Edge serves to improve the product for its users, who are also its owners. They are not motivated simply to find new ways to increase profitability by squeezing out recurring revenue from their CAD customers. This is why Siemens can license the Parasolid kernel to other CAD vendors -- because the others will will never catch up. For years, Siemens barely marketed Solid Edge at all -- they are that good.
(Apple is another example of a company that uses the tools and products they sell to develop the tools and products they sell; Steve Jobs may not have been a programmer, but dropping acid probably helped him to understand recursion.)
Not really new as it is built on top of Parasolid. The nice UI is fairly new, dictated by the tablet environment and style given while building upon traditional CAD approaches. Their claim of 'reinventing CAD' is very difficult to take seriously when they basically leverage on a 40 years old traditional and highly optimized product where the success point is only that it was made available on tablets when Parasolid compiled their kernel on the then newest Apple hardware (which was powerful enough now to run Parasolid). More like being in the right place in the right time kind of thing, not revolution, exposing the essential functionality of a huge set, while graciously forgetting that CAD is not only about accurate solid modeling (a huge part of it though) but coordination, engineering and workflow matters, without those it is a first unrealised step towards a product, not a reinvention at all, not even close.
Nicely simplified handling though, kudos there, exposing well the subset of Parasolid functions being enough. Very good in its niche, in the domain of simple pretty things where forgetting hard matters is acceptable, democratising part (geometry) of the design for more people. The advances in making additive manufacturing available to the masses could elevate it further, true to its roots, by riding the right horses. (assuming it could connect to other tools in a similarly simplified manner that could do the remaing jobs for it in realizing a product)
Solvespace has a lot of problems, I think I would have trouble using it in a professional setting, however, it is such a joy to use. it feels like the program has captured the pure essence of parametric modeling and put it in program form. lightweight and nimble, nothing extra, just plain fun to use. until your models start exploding, which happens often in solvespace.
I mainly did the above as a sort of kata, to stretch those metaphorical solvespace muscles
Declarative CAD systems like OpenSCAD are very attractive to people with a programmer mindset (in opposition to people trained on existing cads), but the space seems under developed.
I dream of using something similar with better tools and language, and a feeling similar to writing HTML and CSS.
OpenSCAD required bottom-up approach, starting from smallest features to be able to transform their position in a final model. Too hard for actual real things to make reason about. I'm a programmer for 20 years and can't use OpenSCAD.
CadQuery is more abstract and manageable, allows to base your workflow on workplanes and start from big features, top-bottom. It's a nice approach for small models but assemblies are a real pain.
OpenSCAD is extremely tedious to use, although I very much like the idea. The main Problem to me seems that it has zero facilities for helping you do parametric modelling.
Usually, if you want to have a certain 2D shape in a parametric modeller you can specify a few basic parameters and let the software derive the rest, in OpenSCAD the duty is on you to derive a geometric equation which gives all points for the shape given the parametrs.
It very quickly becomes non-stop highschool geometry for everything you want to do.
I think you could have a language where you programatically specify a shape, which is then compiled into e.g. an array of points and can then be used in the programm.
Every time I sit down to do anything non-trivial in OpenSCAD, I wonder if there isn't some better way of representing things --- I'd like for there to to be something better, but usually the solution to any problem put forth on the OpenSCAD mailing list is: "learn this bit of math and apply it thusly".
That said, I gave up on all this and have switched over to just modeling toolpaths:
that way, I'm certain that whatever is modeled can actually be made, and I'm also certain that the modeling is not limited by arbitrary things. I've got an idea for a woodworking joint which I haven't been able to model so as to cut out in any other program, and I'm hoping this will let me finally manage it.
I've been using OpenSCAD Graph Editor (OSGE) as a front-end:
The comparison is pretty interesting, however SolveSpace is badly misrepresented by "not parametric". In my opinion easy, stable and very flexible (the same tools are used in 2d and 3d) parametric modelling is it's greatest strength.
So I decided to redraw the model in SolveSpace fully parametric. It took me 18 minutes.
If you are doing some simpler modeling and OpenSCAD is enough for the job, you may want to have a look at https://github.com/elalish/manifold which is a mesh boolean library designed with robustness and performance in mind.
SolveSpace is much better than FreeCAD. Honestly it's the only free CAD worth bothering with. The biggest limitation is no fillets or bevels, but it sounds like FreeCAD can't do that either.
But honestly if you're doing a decent amount of CAD as a hobbyist the only sensible option is to pirate Solidworks.
SolveSpace is interesting, and more "fun" than FreeCAD, and easier for beginners to get started in, but it is not better than FreeCAD. FreeCAD is a more powerful tool, and it is difficult to learn. I believe most (but not all) of the issues people have with FreeCAD come from their inexperience with FreeCAD, not from FreeCAD's actual limitations.
You are incorrect about FreeCAD being unable to do fillets and chamfers, FreeCAD has no problem doing fillets and chamfers.
I wrote a comparison[0] of FreeCAD and SolveSpace earlier this year, with the following conclusion:
> SolveSpace is fun to use in a hard-to-describe way that FreeCAD is not. It is also much more stable (i.e. it doesn't segfault). It is also much more immature than FreeCAD, and much less feature-complete. Overall I think FreeCAD is a more productive CAD program, mainly just because it can do fillets and chamfers, and you encounter open faces much less frequently, but also because of the "long tail" of little things that can be done in fewer clicks in FreeCAD.
We had an earlier comment outlining the problems with fillets, and the author of the article had problems as well. Do you think those are real, or could they be worked around with more experience in FreeCAD?
> The biggest limitation is no fillets or bevels, but it sounds like FreeCAD can't do that either.
which is simply untrue: FreeCAD can do fillets and chamfers. It has a built-in tool for them. It almost always works flawlessly.
You're right that FreeCAD will occasionally segfault on a complicated chamfer, but generally this is foreshadowed by a gut feeling that the geometry is so complicated that you yourself actually don't know what a correct chamfer would even look like.
But OK, FWIW, I just attempted the same Model Mania 2001 challenge in FreeCAD, and I got this: https://img.incoherency.co.uk/4072 - it took me about 20 minutes.
I didn't run into any issues or crashes with the fillets, the only thing that is arguably an issue is that FreeCAD makes the fillet that intersects with the front edge differently to how other tools do it. The one at the corner of the bottom of the large arc, where it touches the base plate. Arguably this is a FreeCAD bug, but it's hardly the end of the world. To say that FreeCAD "can't do" fillets is just wrong.
When it works, it's flawless. It's very easy to ask it to make a fillet that fails where you're guessing as to why. "Almost always" is far too generous.
In my experience, fillets in FreeCAD work okay, but are pretty much ground zero for the topological renumbering issues.
Put simply, FreeCAD needs a modern geometry kernel and there is no such thing in the open source world.
Given that OnShape (a bunch of ex-Solidworks honchos) went and licensed Parasolid for their new company, that tells you that developing the geometry kernel was something that they were willing to pay money to avoid.
> most (but not all) of the issues people have with FreeCAD come from their inexperience with FreeCAD, not from FreeCAD's actual limitations
I'm much more productive in Fusion than FreeCAD at a similar (low) level of experience. Sadly that means it wins for me, as much as I hate the licensing model.
True in many regards, e.g. the UI is way better and the constraint solver is more intuitive.
But very incorrect in others, specifically:
- SolveSpace has, IIRC, no fillets
- SolveSpace does not have a proper API to it's geometric engine (what the CAD industry, for some unknown reason, calls a "kernel")
To put it in perspective, MATLAB is a similar "if you have to ask" industrial piece of software and their hobby license is like £125 one-off. (Not including any toolkits but still.)
Most hobbyists are not going to blow £500/year on CAD software.
You don't have to pirate it anymore, they have a hobbiest version that is available for hobbiests that make less than $2k per year doing their "making".
This is my article, I am a little surprised to see it posted here, its a bit half baked. Yes, it's Boundary-rep not Binary-rep. The timings are a bit stupid, more of a reflection of me approaching the modelling wrong. I re-did the OnShape and FreeCAD models after watching a video of someone solving it in Solidworks, and it took me about 20 mins for each. This hasn't changed my opinion on the different programs, OnShape is good, FreeCAD is pretty good if you learn to live with it, and Solvespace is interesting, but not nearly as powerful as either.
I very much like the idea of FreeCAD as a FOSS 3D CAD Software. And I have actually used it to do some projects, but I have to say it felt janky at every point and quite prone to crashing doing many operations.
The parametric 2D moddeling worked extremely well, but as soon as you moved into 3D world it became quite unpleasant to use.
I’m a huge fan of OnShape. I wish they had a tier in between their free one and the $1500/yr slot but the software itself is great and the learning materials are really good too if you’re new to CAD generally. The plug-in and custom feature ecosystem is pretty great as well.
I concur on FreeCAD having serious problems that appear almost immediately. SolidWorks has been a smoother experience for me, but the license can be expensive if you don't have an academic, military etc exception.
It's nice to hear about OnShape. Will keep an eye.
Imagine a perfect cube. The edges will be very, very sharp, and this is bad for any number of obvious reasons. To fillet the edges is to round them off: now the cube is much easier to handle. These are "outside" fillets, and you could perhaps make them with a router bit. There are also "inside" fillets (say you "drilled" a perfectly cylindrical hole partway into the cube; an inside fillet would be along the circular bottom edge of the hole), which can't be made after the fact (to do so would involve adding material). The geometry only gets more complex from there: most things aren't cubes or cylinders! Fillets are at once extremely simple, extremely complicated, and extremely important.
They are siblings to chamfers, which are the same idea but instead of being round just involve breaking the edge. You could chamfer the edge on that hypothetical cube with a single touch from a sander or (big) file. Fillets require more care.
Make hard edges soft by replacing them with a surface whose cross-section by the plane normal to the hard edge is a circle tangent to the the two surfaces connected by the edge.
Somewhat easy when hard edges are simple straight lines connecting planes, but trickier when multiple hard edges meet at a vertex at arbitrary 3D angles or when the hard edge is a 3D curve.
To add to explanation: inner fillets relax material stress in the corners and make final produced thing more durable and strong. You pretty much can't use CAD without fillets for real industrial applications.
Qcad is fine. I did drafting/autocad in High School (2002) and it wasn’t too bad.
I tried sketchup and it is not great for 2D. For 3D I didn’t like it as much either, I felt like you have to use the mouse a lot more. I had a ton of trouble just subtracting a volume in sketchup (creating a window in an extruded floor plan)
I use SweetHome3D to arrange furniture before I move into a new place and I know that homebuilders and realtors use it professionally. I don't know to what extent it will be useful for a professional architect.
LibreCAD is probably the best free one and Autodesk has fusion 360(free for personal use I believe) , but honestly most people prefer a pencil and paper at first.
Fundamentally the issue comes down to a complete lack of capable 3D Parametric CAD Kernels [0]. These are the Linux kernel to a Linux distribution. They are the central core that implements the fundamental geometric structures and operations.
The article comments on the difficulty with filleting (putting a radius on an edge), this is a fundamental operation any cad user would be doing many time a day.
FreeCAD is built on top of the OpenCascade [1] geometric kernel, it has a legacy back to the 80s like most kernels, and is by far the most capable open source kernel. However, it lacks stable support for may geometric operations, including filleting.
The only way we will see industrial level quality open source parametric CAD is with either a new modern kernel (I don't believe OpenCascade can be brought up to level), or if one of the other closed source kernels goes open source. A new kernel will be many 100s years of person work to produce.
OnSpace (mentioned in the article) uses the Parasolid Kernel [2], the same kernel used by SolidWorks and many other packages. If you want to build a commercial cad package it by far the best option.
0: https://en.m.wikipedia.org/wiki/Geometric_modeling_kernel
1: https://en.m.wikipedia.org/wiki/Open_Cascade_Technology
2: https://en.m.wikipedia.org/wiki/Parasolid