logoalt Hacker News

dgroshevyesterday at 5:47 PM1 replyview on HN

It's probably impossible for FreeCAD to catch up with the industry-standard CAD systems (SOLIDWORKS, NX, Fusion) unless they somehow pour a stupendous amount of money into their geometry kernel [1].

All major CAD systems use mature geometry kernels like Parasolid [2]. Parasolid was developed for 40 years and is still in active development. This is the piece of code that enables CAD systems to do things like computing an intersection of a G3 smooth fillet with embossed text, handling all corner cases.

FreeCAD runs on OpenCASCADE [3], which is both less sophisticated today and is slower to gain new features than Parasolid, being seemingly maintained by one person [4]. FreeCAD's geometry is hard limited by what OpenCASCADE can do.

This is the main difference from Blender. Blender ultimately operates on vertices, which doesn't require nearly the same level of inherent complexity. Blender isn't bottlenecked in what it can do like FreeCAD is.

[1]: https://en.wikipedia.org/wiki/Geometric_modeling_kernel

[2]: https://en.wikipedia.org/wiki/Parasolid

[3]: https://en.wikipedia.org/wiki/Open_Cascade_Technology

[4]: https://github.com/Open-Cascade-SAS/OCCT/commits/master/


Replies

iFireyesterday at 6:23 PM

As part of my donated work in Godot Engine, my approach is to improve manifold https://github.com/elalish/manifold to get a "geometric kernel"

I think I've succeeded and many CAD tools use manifold for geometric kernels on 3d boundary meshes.

I was able to get Godot Engine and Blender to adopt elalish/manifold.

List of CAD tools that adopted elalish/manifold.

OpenSCAD Blender IFCjs Nomad Sculpt Grid.Space badcad Godot Engine OCADml Flitter BRL-CAD PolygonJS Spherene Babylon.js trimesh Gypsum Valence 3D bitbybit.dev PythonOpenSCAD Conversation AnchorSCAD Dactyl Web Configurator Arcol Bento3D SKÅPA Cadova BREP.io Otterplans Bracket Engineer