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.

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.

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…

These days I was debugging an old modeling code aimed at the extraction of a piece of a two-manifold B-rep shell by a user-specified contour (Contour Capture algorithm). The code does imprinting, i.e., it geometrically and topologically fuses a contour with a shell as its first stage. The algorithms like that are pretty standard in the modeling systems. It is hard to imagine a geometric kernel that does not allow trimming shape by a loop of edges. The OpenCascade kernel is no different in this regard. It provides the so-called General Fuse operation, which can intersect topological entities with each…

“If you can’t have fun, there’s no sense in doing it.” One famous guy.

A typical “hello world” application with OpenCascade is building up a cube. However, such a model is a way too simplistic for what we’re going to discuss today.

This week I faced a need to investigate the accuracy issue in one of our voxelization algorithms. Testing such sort of things on the parallelepiped-like domains is nonsense as the involved surfaces are all planar. Of course, if the voxelization algorithm employs octree subdivision, you may rotate your cube to get a denser grid over the faces. Such…

One of the topics I’m spinning around for years is this “direct editing” business. We have even devoted a couple of work sessions with students at our seminars to prototype push/pull operation (in the Lobachevsky university of Nizhny Novgorod, Russia). The approach was a real mess, and it was not going to work anyway. [Because] This is how we did it:

- We used prisms to represent the volumes swept by pushed/pulled faces (we’d better use offset faces, at least in simple cases).
- The prisms were fused or subtracted from the entire body (none of Booleans is a local operation).
- No…

Open-source CAD platform: analysissitus.org