File formats, Geometry and Kernels

I didn’t know where to post this so I leave it “uncategorized”.
I have been modeling in Rhino for many years but i have also tried different software as Solidworks,AutoCAD, 3Dstudio, Vektorworks and Sketchup. I stayed with Rhino for several reasons; It was the first CAD program I could learn myself without taking classes, It was easy to try, make mistakes and learn from that. Another advantage was the ability to easily move models from different CAD programs and even sometimes helping other colleges with translation from to different programs. In my work, setdesign construction in theater and television branch, so many different CAD programs are used. I have learned, by trial and error, how to import or export to a particular program to get the best result without really understand what happens. I know if I import a model from ACAD or other DWG formats it is mostly a polygon mesh model that shows up i rhino so I come to the conclusion that ACAD works with polygon surfaces. If I import a model from Solidworks as an IGES or a STEP, most of the times it is a working NURBS model, so in my narrow rhino world I believe Solidworks are using NURBS geometry. I have for many years believed there is only two different 3D geometrys; Polygon mesh and NURBS and that T-splines and Sub-D are development from this geometrys.
I recently began to dive into this subject and was really confused and learned that it is depending on which geometric model kernel each program belong to. Solidworks uses Parasolid kernel and ACAD uses ACIS kernel.
What understand is it how a specific kernel reads a geometry from another kernel and translate it to a geometry used in the program? Or is it possible to say that Parasolid i using polysurface and ACIS is always polygon?
Maybe my question seems to be a bit awkward for all of you who are deep into the mathematics but it would be very helpful with a “map” showing different formats, geometrys and kernels and how they relates to each other.
Or maybe it is not possible…

This might help a bit:

This is done via various “translators” - either in-house or licensed. Some formats have a pretty well defined and published spec like IGES or STEP - in those cases, the reading, translation (to Rhino objects) and writing is managed internally by McNeel. On the other hand, the Solidworks importer in Rhino is licensed from a third party (Datakit, who also make lots of other “translators”).

I guess I could also add that there are really only a few forms of 3D object representation - Mesh, Sub-D, Brep, Voxels - all the different kernels “wrap” these basic mathematical definitions in their own libraries.


1 Like

Thank you Mitch!

I had actually read the Wikipedia article about Geometric modeling kernel and it is a good view of relationship between kernel and programs. I want to go further to understand if it is possible to relate a specific geometry to a kernel. I noticed (so far as I have seen) that Rhino import nurbs from Parasolid programs and Mesh from ACIS based programs.

Maybe I’m trying to simplify too much but all those articles and forum posts I have read It seems like Parasolid programs uses Brep and CSG(?) as its main 3d geometry.

I thought that a brep was a general geometry type, that a nurbs could be defined as a brep? Brep is therefore its own geometric definition?

On Wikipedia NURBS and polygons are well described in technical specifications and mathematically explained. The same thing about Subdivision if I follow the references and also T-splines is defined as a unique object definition. But if I look for Brep I only get a general explanation as “a local representation connecting faces, edges and vertices” but no definition of the surfaces or faces.

I would really like to sort this out!