Envision 6.1
July 16, 2026
HOOPS Envision for Web
HOOPS Envision for Desktop
Fixed Bugs
CAE-1662 Fix a UgServer crash on locales which use decimal comma
Fixed a crash related to locales with decimal commas in the number formatting. The locale is now set consistently to “C” for the servers using a native C++ addon.
New Features
CAE-1250 Added support for CAD surface groups
Added end-to-end support for CAD surface groups, named collections of element faces that originate from the individual faces/surfaces of a CAD model imported via the HOOPS Exchange data provider. A CAD model can now be imported with each CAD surface preserved as a queryable group, those groups can be persisted to VTFx, and they can be accessed through the public C++ API and the C#/Python bindings.
- New public
DataSurfaceGroup(ref-counted) andDataSurfaceGroupItem(value) classes, each group mapping a CAD surface id to the element faces that belong to it. - New public
SurfaceGroupQueryhelper withavailableCadSurfaceIds()andgetTriangulation(cadSurfaceId, ...)for enumerating and retrieving the geometry of the imported surface groups. DataSource::addSurfaceGroup()for programmatic construction of surface groups.- Surface groups are persisted to VTFx, so they survive a save/load round-trip.
- All new classes are available through the C#/Python bindings.
The DataProvider framework (API version 7.4) was extended to support this feature. A new
CDP_SET_CAD_SURFACES set type lets a data provider expose each CAD face as a selectable set of
element faces, populated via CDPSet::addSurfaceItem(). The HOOPS Exchange data provider now uses
this to publish each tessellated CAD face as a surface set on import.
CAE-1644 New cee_envision.pt Python module for particle visualization
A new cee_envision.pt Python module exposes the CeeParticleModel C++ library to Python via
SWIG bindings. It covers loading and visualizing time-stepped particle cloud data, reading and
writing PTFX and VTP files, scalar mapping, and frame animation.
Four example scripts are provided in Examples/ParticleExamples/ together with demo particle
datasets in Examples/DemoFiles/particles/.
See Using the Particle Module in Python for usage and examples.
CAE-1645 Added back-face scalar coloring
Surfaces can now display a different scalar result on their back faces than on their front faces, making it possible to visualize two results at once on two-sided geometry such as cutting planes and model surfaces. Each side keeps its own color legend and scalar settings.
CuttingPlane::setMapBackScalarResultId/mapBackScalarResultIdset the scalar mapped to the back face of a cutting plane.ModelSpec::setBackFringesResultIdsets the model-wide back-face fringes result, with per-part overrides viasetOverridePartBackFringesResultId.UnstructGridModel::backScalarSettingsexposes an independentScalarSettingsobject (and legend) for the back scalar, separate from the front-face settings.
When no back scalar is configured, rendering falls back to single-sided fringes and no extra work is performed.
CAE-1703 Color legend performance improvements
The Color legends’ network load has been reduced by sending only the necessary data and reconstructing the color table on the client side. In practice, this means that some colors for continuous legends may be ever so slightly different from the previous version, but visually appear identical as a result of rounding and interpolation errors. Additionally, users may see an improvement in performance in the range of about 100-200 ms when updating the color legend or scalar settings properties, especially when setting up the model for the first time.
Several ug.ScalarSettings properties that only affect the color legend now update the legend
directly on the client, without requiring a round-trip to the server. This makes changes to these
properties apply faster and reduce server load. The affected properties are:
ScalarSettings.numericFormatScalarSettings.numericPrecisionScalarSettings.setCustomContinuousTickMarks()(customContinuousTickMarkArr)ScalarSettings.scalingConstantTermScalarSettings.scalingFirstDegreeTerm
Internally, the format and delivery of color legends has been updated. Color legends are now self-contained and delivered together with the visualization update packet, with no change to the public API.