Announcing the Release of SMTK 22.04

We are pleased to announce the release of SMTK. 22.04. Its major improvements include:

New Resource Properties

We have extended the default property types for SMTK Resources to include sets of integers and coordinate frame information. The coordinate frame property includes an origin point and 3 orthonormal vectors specifying a change of basis. In addition, you can refer to another component resulting in the ability to “chain” coordinate frames (as in the case of assembly modeling). We have reserved the names transform and smtk.geometry.transform to indicate that the component’s geometry should be transformed using this property when being rendered.

ParaView Related Changes

If you are using an Item View derived from pqSMTKAttributeItemWidget, you can now suppress an Attribute Item’s label from being displayed by simply setting the label value to be ” ” (note a single blank and not the empty string). As long as the item is not optional, its label will not be displayed.

We have also added an application-controlled setting that allows Items’ 3D Widgets to remain visible even if their Qt controls loose focus or are hidden. This overrides ParaView’s default behavior of only allowing one 3D widget to be visible at a time. A a result, multiple Attribute Item’s can now be rendered in 3D at the same time.

In terms of rendering geometric-based resources, SMTK’s ParaView Representation can now transform geometric components that have coordinate-frame transformations applied using the reserved property names described above. In addition, if your geometry contains volumetric cells such as tetrahedral and hexahedral elements, we will now extract and render boundary of these volumetric cells.

Changes to SMTK’s ParaView Plugins

We have done some refactoring to SMTK’s appcomponents plugin in order to enhance customization. As a result, the older operations panel as been moved into smtkPQLegacyOperationsPlugin so that applications based on SMTK may exclude it. Similarly, the new operation toolbox and parameter-editor panels are in a new smtkPQOperationsPanelPlugin. Applications may include any combination of the operation-panel plugins.

We have also provided the ability to customize any component that is registered with ParaView’s Interface Tracker. For example, you can use this functionality to change which operations should be presented to the user in the new operation toolbox panel.

SMTK QT Related Changes

In previous releases, playback of recorded tests were not always producing repeatable results due to Qt’s unpredictable implicit naming of UI widgets. To avoid this, we have added the missing names to the widgets for qtAttribute and qtItem related instances.

In order to avoid conflicts with 3rd-party libraries, like TBB, SMTK compile definitions now include QT_NO_KEYWORDS, which means all uses of emit, foreach, signals, and slots has been replaced with Q_EMIT, Q_FOREACH, Q_SIGNALS, and Q_SLOTS, and must be updated for any SMTK plugins that use the smtk_add_plugin cmake macro.

Relocatable Projects

SMTK Projects now store relative paths to their resources instead of absolute paths. As a result, you can move projects to different directories or tar/compress projects and send them to colleagues.

Python Changes

We have seen cases where Python-based operations encounter deadlock conditions due to issues with Python’s global interpreter lock. In order to work around this problem, all Python operations (included those that are imported) will be run on the main thread (which is the same as the thread running GUI).

Also starting with this release, Python 2 will no longer be supported in SMTK.

Graph Session Changes

We are in the process of making many improvements to the Graph Session. In this release we have an initial implementation of modeling inverse relationships between graphs nodes.


For more information, please see the release notes for 22.04 which can be found here.

Leave a Reply