Manifold Geometry // Многообразная Геометрия
Download page for Analysis Situs is here.
Recent articles
  • Злобно про параллельные вычисления -
  • One easy way to differentiate between U and V directions -
  • По мотивам одной рецензии -
  • Что еще читать? -
  • Assign colors to faces in a STEP file -
  • Community digest series #01 -
  • Злобно об IT (часть 2) -
  • Qui sait -
  • Why convex hull attribute? -
  • Coupled math of OpenCascade -
  • Meet Analysis Situs 1.1 -
  • Convex hull heuristic for CAD feature recognition -
  • Build a swept volume for a turned part -
  • Q&A from StackOverflow and more -
  • Getting recognized by OPEN CASCADE -
  • On the recognition of threads in CAD models -
  • Forum is up and running -
  • Iterating files with OpenCascade -
  • С Днем Победы! -
  • Злобно о платформах -
  • Convert CAD faces to splines with OpenCascade -
  • Introduction to OpenCascade and CAD modelling kernels -
  • Злобно об IT -
  • Building up a containerized CAD app using Docker -
  • Analysis Situs 1.0 is out -
  • Google Summer of Code at OPEN CASCADE -
  • CAD programming lessons -
  • On recognizing canonical surfaces: cylinders -
  • Conversation about GameDev with Chris Taylor -
  • On sheet metal unfolding (Part 4) -
  • Инженерный путеводитель от Аскона -
  • Open-source DXF export -
  • The 1st of December -
  • On recognizing canonical surfaces: checking -
  • Extrema to use in OpenCascade -
  • Модель-Алгоритм-Программа -
  • Build a prismatic block in OpenCascade -
  • Build Analysis Situs 0.4 on Linux -
  • Начинающему ученому -
  • On sheet metal unfolding (Part 3) -
    In the previous blog post, we discussed how to unfold cylindrical bends precisely. However, praxis puts additional constraints to get precise unfolding. During sheet metal bending, the inner surface of the bend compresses while the outer one stretches. Therefore, somewhere in between, there is a zone separating the tension from the compression. In this zone (called "neutral axis"), the material gets zero distortion. When looking at the folded state of a sheet metal part we view the deformed flat pattern's shape. The following question arises then: which dimensions of a flat pattern produce that folded shape?
  • On sheet metal unfolding (Part 2) -
    One of the essential ingredients of the unfolding algorithm is flattening bend faces. This article explains how to unwrap cylinders (the canonical host surfaces of bends) while preserving all their contours, including carved edges and holes. The unfolding is done without deformations, i.e., not taking K-factor into account. The application of material props is left for future investigation.
  • On sheet metal unfolding (Part 1) -
    With this blog post, we start (or restart?) a series of articles devoted to sheet metal processing. We will cover quite a few things, including sheet metal recognition, unfolding, and treatment of specific features. Like many other geometric modeling applications, this area is not well documented because commercial players do not like to disclose their small dirty secrets. Let's make these things a bit more open.
  • What is enduring software? -
    By "enduring software," I mean a computer program that you can compile and run successfully after years passed from the last time you did it.
  • Push/pull for the poor -
    Why I think direct editing worths the efforts is that it genuinely unlocks shape modification. The cutting-edge CAD software should not ground itself on the intelligence in the data (features and sketches). It should rather be intelligent in its algorithms (feature recognition). The direct modeling field is so deep and exciting that I could not resist sharing a few words on it.
  • Пролетарский способ мониторинга кучи -
    Современные разработчики зачастую не сильно заморочены такими скучными вопросами, как доступные системные ресурсы, например, память. Это, конечно, неудивительно, поскольку вместо привычных в середине девяностых шестнадцати мегабайт, мы имеем теперь 16 гигабайт, и это далеко не предел. В результате, программист перестает заботиться о памяти до тех пор, пока его блаженное неведение не споткнется о грубые реалии конкретного железа, либо среды виртуализации. Простой пример — запуск набора тестов в Docker-контейнере с ограничением памяти в 3ГиБ (привет AWS). В отсутствие менеджера аллокаций и деаллокаций, попытка динамически выделить блок памяти свыше отведенного предела уронит ваше приложение без какой-либо внятной диагностики.
  • Useful heuristics for checking AAG isomorphisms -
    Searching for subgraph isomorphisms has been considered as a general way of a feature matching over the past decades. Although this method is known to possess high complexity, it has remarkable advantages over the rule-based approaches which employ ad-hoc shape interrogation procedures. The primary benefit of the subgraph isomorphism method is its ability to handle custom feature definitions (i.e., the user's features). It is a single common algorithm that operates with whatever feature descriptors represented with their AAG subgraphs. In practice, the availability of isomorphism searching algorithms allows users of a geometric modeling system to specify their features using a formal graph language or simply by interactive picking of feature faces.
  • The QVTKWidget is dead. Long live the QVTKWidget? -
    There is something weird about the new Qt widget coming with VTK for integration with the GUI of your application. Let's try to recover the old QVTKWidget one. It worked before getting deprecated in VTK 8.2.
  • Thoughts on Pluralsight courses -
    I've spent quite a while looking through Pluralsight courses available by a subscription that I happened to get. To confess, I am not a real fan of any distance learning. Too often such a way of studying gives only an impression that you've got some knowledge, while you have not. There is even some psychological explanation to that phenomenon, which one can loosely articulate as a "lack of mass." The point is that any video course per se is not enough. A video course plus practicing are not enough either. What's necessary is all this together plus time, plus different views on the subject, seeing it from different standpoints and even touching some artifacts in-real-life. Only by passing this full journey, making all sorts of mistakes, you might end up with something looking like a real knowledge accompanied by intuition. Well, anyway, there are some video recordings that you might want to start that journey with. Here I'll list some of them. Bear in mind that my perception of these courses is subjective.
  • Поиск подграфа AAG -
    Распознавание конструктивных элементов средствами библиотеки OpenCascade можно производить различными способами. Наивный метод состоит в написании кода на C++ для итерации граничного представления модели с проверками геометрических типов. Шагом в светлую сторону является использование формализма теории графов. Этот подход, хотя и ограничен (он хорошо работает лишь для изолированных конструктивных элементов), дает общий метод решения целого класса задач. Остается чисто технический вопрос: как искать подграф в графе?
  • Для русскоязычной аудитории -