Analysis Situs 1.0 is out

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.


Hidden line removal

Hidden Line Removal view for generating drawings.

Save 2D DXF

DXF drawing exported from Analysis Situs and imported to Autodesk DWG TrueView.

Find several faces by their indices

Locate multiple faces (features) in Analysis Situs.

Persistent selection

Persistent features in Analysis Situs.


Supporting assemblies is a two-fold problem. First, the UI of Analysis Situs is not really tailored to assemblies, and it won’t go that way. At the time being, I don’t see a good architecture for mixing up the part-scale analysis with assembly-scale processing algorithms. But, there’s another side of the issue. Analysis Situs is also a CAD framework, so it cannot ignore assemblies. The solution to this is to treat assemblies as the extra data sources for the GUI framework we have.

Working with assemblies.

So, as the first stage, we added support of open-source OpenCascade’s XDE framework. Although this framework comes with its inherent downsides, it still allows for a quick jump into the world of assemblies, and, interestingly enough, it unlocks data exchange scenarios. A brilliant example here is CAD Exchanger SDK with its XDE Converter that can be plugged at the input port of your data processing pipeline.

FBX export

KAMAZ truck having 391 components exported to FBX and imported in Unity. Courtesy of Rapisarda Antonino via GrabCAD.

Preparing 3D data for games and AR/VR scenes is quite a problem. There is no direct way of effortless commuting CAD and gaming worlds, and the existing solutions are quite costly. Speaking about Unity, it is not that awful though. You might be aware of Unity’s capability of importing FBX files that are feature-rich asset containers holding not only meshes but also animations, visual properties and possibly even NURBS. Fortunately, there is a free C++ SDK by Autodesk that allows reading and writing FBX files royalty-free. So, long story short, we now integrate this SDK to Analysis Situs to be able to write FBX files with assembly structure and colours preserved. The script to do this is a three-liner:

> asm-xde-load -model M -filename your_input.stp
> asm-xde-generate-facets -model M -normal
> asm-xde-save-fbx -model M -filename your_output.fbx

So we first load the document as an assembly into the internal data structure, then generate facets of a certain quality, and finally write these facets in the FBX format.

Distance measurement

Distance measurements in Analysis Situs.

Shape browser

Shape browser for topological objects.

Facets to faces

Turn facets into faces.


Build algorithms alone

Build algorithms only.

Tcl variables

> asm-xde-load -model M -filename <filename>
> asm-xde-browse -model M

To know the type of a variable, use the dedicated `whatis` command:

> whatis M

Server and CLI versions

Analysis Situs CLI.

For running on a server, we support UDP (universal datagram protocol), so that you can send Analysis Situs Tcl commands for execution remotely. This feature has been tested in production already and it works nicely.

Analysis Situs server communicating via UDP.

Read more on this in the user’s guide.

Improvements in isomorphism

I’m practicing my Wacom tablet for hand drawings.

The isomorphism algorithm, which is a backbone of feature matching functionality, has got some improvements for production use. Here is what was done:

  1. History is now exposed in the interface of isomorphism, so you can match pattern’s and global faces’ IDs without much pain.
  2. Different matching strategies were introduced. One useful strategy is to disable the check of subshapes’ quantities, this way generalizing the isomorphism logic to non-isolated features.
Non-isolated features can now be matched with isolated patterns.

Serialize shapes to base64-encoded binary buffers

Serialize selected feature as base64-encoded binary buffer.

Wrapping up and more news

And here are some updates not directly related to Analysis Situs:

  • Our youtube channel has been given a new breath. Check out our educational CAD programming course in C++.
  • The look & feel of Manifold Geometry (this blog) has been adjusted for better readability. I was also doing some tiny housekeeping things at the backend of the underlying MaxSite CMS, which is by the way a cool alternative to WordPress.

Open-source CAD platform: