Feature recognition on CAD models is a tough topic. This is where Analysis Situs finds its niche thanks to the availability of basic shape interrogation and matching algorithms. There are different feature types and different application areas for feature recognition, including, but not limited to:

  1. NC paths generation.
  2. Manufacturability analysis.
  3. Direct editing of CAD models.
  4. CAD model simplification and idealization for numerical simulations (CAE).

The common ground for these application areas is the ability to extract as much semantics from a dumb geometry as possible. While the foundation classes of Analysis Situs are well-proven (they have been used to develop…


Sometimes we want to do things that are completely opposite to canonical recognition, i.e., to convert nice analytical shapes to splines. There are several circumstances when you might need such a trick. What I could recall from practice is the following:

  1. Data exchange. After spending several weeks (if not months) modelling turbine blades with their hubs and shrouds, I realized that some surfaces (especially offset surface) were completely broken (Fig. 1). The “fix” was to represent the faulty geometries with splines.
  2. Lack of robustness in modelling algorithms for the special analytic cases. As you might know, a typical CAD engine…


This article is mostly a recording of the corresponding CAD programming lesson we published on our youtube channel. In this series, we cover the basic aspects of the geometric modelling discipline and give an introduction to the OpenCascade library from a practical perspective.

Introduction to OpenCascade and CAD modelling engines.

Today let’s speak about the modelling kernels in general and the position of OpenCascade on this market.

Some interesting CAD kernels.

OpenCascade is not alone, and if we list all other CAD kernels, we will get just a handful of libraries, which deserve some discussion, all written in C/C++ language. ACIS and Parasolid are…


Well, it took quite a while for the new release to come. As promised, I was waiting for the recent number of downloads to reach the previous release figure. And then waited even more, because the number of new features was not satisfying enough. I was also thinking to surround these dry and boring release notes with some comments so that it becomes more like a status update. That’s the idea I stole from Chris Taylor and his Kanoogi gaming platform.

You can download Analysis Situs 1.0.0 on its landing page as usual.

CI/CD

Yep, we have it now. Only for…


In the previous article, we emphasized the importance of modeling with clean and concise 3D primitives. To put it short, prefer analytical shapes whenever possible if you are going to recognize any features or pass your shape through the direct editing algorithms, such as push/pull.

Non-analytical surface types for the drilled holes.

Too often though, we have to deal with someone else’s data that’s composed of all sorts of excessive splines. To give such models a new breath of life, the analytical geometries should be recovered back from their freeform counterparts. It is generally wise to give analytical recognition a shot whenever you’re scanning your model for…


Is there anything in common between the Computer-Aided Design and game development industries? Can we, as the CAD devs, learn from the gamedev community?

I have never been quite interested in the gaming industry per se. However, CAD and gaming seem to share a common backbone, which is apparently computer graphics and, to some extent, simulation. Another remarkable aspect of games is the efficiency in using computational power. To have a high FPS, you cannot afford to write inefficient code. Not surprisingly, gamedev is full of best practices, tricks, and secrets on how to make the best out of your…


Quick note: Contact us if you’re looking for a sheet metal unfolding algorithm.

In our previous articles, we covered different aspects of a sheet metal unfolding algorithm. We started off by giving a brief overview of the principle and software packages implementing it. The second part was more mathematical. We explained how to unroll cylindrical bends without deformations using the approximation utilities of the OpenCascade open-source library. The third part was mainly devoted to applying a K-factor for obtaining realistic bend compensation elongations.

Surprisingly enough, the unfolding algorithm is a deep subject. To confess, I did not see much complexity…


In the OpenCascade kernel, you have certain flexibility in the organization of a topology graph for your model. In particular, it is possible to reuse boundary elements, for example, by replicating the same face many times in a CAD part with different transformation matrices. While such a possibility may look flexible and is, indeed, useful in certain circumstances, it opens the door for tricky issues which are hard to debug. …


It sometimes happens that your B-Rep or mesh model contains inverted faces, i.e., the faces whose normal vectors are pointing in a wrong direction with respect to the bounded material. We have devoted a couple of blog posts to that issue already (see here and here), but so far it was not straightforward to see if your geometry suffers from such sort of defects or not. In the next version of Analysis Situs, the inverted faces & facets will get your attention right out of the box: we now render all such problematic entities in red color.

Analysis Situs keeps going to give you an open CAD platform for prototyping engineering software without any bit of commercial code inside. Stay tuned.


In our early paper devoted to feature recognition, we described a simple approach for finding isolated holes, pockets, and general cavities using the Attributed Adjacency Graph and some other heuristics. It appears that not so many tools exist which can serve as a basis for developing this sort of algorithms. Our Analysis Situs contributes to the feature recognition field by making some basic data structures and heuristics (such as dihedral angles) publicly available. At the same time, some questions remain, and in this blog post, the following question is answered (reformulated for brevity by me):

“How can I reproduce the…

Analysis Situs

Open-source CAD platform: analysissitus.org

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store