HOOPS Visualize Web 2025.8.0
Technology Update
Note
The minimum required C++ standard has been raised from C++11 to C++14.
- All build toolchains must now enable at least -std=c++14 (or /std:c++14 on MSVC).
- Downstream integrators compiling custom modules against our headers must adapt their build configurations accordingly.
Minimum Linux requirements have also been raised. Please refer to the Supported Platforms documentation for details.
- Official NPM Repository Launch: Developers can now directly download and integrate the HOOPS Web Viewer client and related packages via NPM.
- Open Source UI Library: Our UI component library is now open-sourced and available from its Github repository, supporting transparency in our UI development.
- html2canvas Update: Dependency updated from html2canvas 0.5.0-beta-4 to html2canvas-pro 1.5.8.
Deprecated Features and Functions
- Deprecation of shipped Node.js; now considered a server-side requirement. Removal of Node.js from the package is scheduled for release 2026.1.0.
- Deprecation of legacy server wrappers.
- Deprecation of the old UI.
- Deprecation of HTML templates associated with the old UI.
- Deprecation of over 43 material-related functions. These have been replaced by the new IMaterial interface. Full removal of these functions is planned for release 2026.1.0.
| Current Function | Replacing Function |
|---|---|
| setMetallicRoughness() | setNodesMaterial() |
| setNodesAmbientColor() | setNodesMaterial() |
| setNodesAmbientMix() | setNodesMaterial() |
| setNodesColors() | setNodesMaterial() |
| setNodesFaceColor() | setNodesMaterial() |
| setNodesFaceEmissiveColor() | setNodesMaterial() |
| setNodesFaceSpecularColor() | setNodesMaterial() |
| setNodesFaceSpecularIntensity() | setNodesMaterial() |
| setNodesLineColor() | setNodesMaterial() |
| setNodesLinePattern() | setNodesMaterial() |
| setNodesOpacities() | setNodesMaterial() |
| setNodesOpacity() | setNodesMaterial() |
| setNodesPointColor() | setNodesMaterial() |
| setNodesTexture() | setNodesMaterial() |
| getMetallicRoughness() | getNodesMaterial() |
| getNodesAmbientColor() | getNodesMaterial() |
| getNodesFaceColor() | getNodesMaterial() |
| getNodesFaceEmissiveColor() | getNodesMaterial() |
| getNodesFaceSpecularColor() | getNodesMaterial() |
| getNodesLineColor() | getNodesMaterial() |
| getNodesOpacity() | getNodesMaterial() |
| getNodesPointColor() | getNodesMaterial() |
| getNodesEffectiveAmbientColor() | getNodesMaterial() |
| getNodesEffectiveEmissiveColor() | getNodesMaterial() |
| getNodesEffectiveFaceColor() | getNodesMaterial() |
| getNodesEffectiveLineColor() | getNodesMaterial() |
| getNodesEffectiveOpacity() | getNodesMaterial() |
| getNodesEffectivePointColor() | getNodesMaterial() |
| getNodesEffectiveSpecularColor() | getNodesMaterial() |
| getNodesHaveTransparency() | getNodesMaterial() |
| resetModelOpacity() | resetNodesMaterial() |
| resetNodesColor() | resetNodesMaterial() |
| resetNodesOpacity() | resetNodesMaterial() |
| unsetMetallicRoughness() | resetNodesMaterial() |
| unsetNodesAmbientColor() | resetNodesMaterial() |
| unsetNodesFaceColor() | resetNodesMaterial() |
| unsetNodesFaceEmissiveColor() | resetNodesMaterial() |
| unsetNodesFaceSpecularColor() | resetNodesMaterial() |
| unsetNodesFaceSpecularIntensity() | resetNodesMaterial() |
| unsetNodesLineColor() | resetNodesMaterial() |
| unsetNodesLinePattern() | resetNodesMaterial() |
| unsetNodesPointColor() | resetNodesMaterial() |
| unsetNodesTexture() | resetNodesMaterial() |
Enhancements
- The snapshot feature is now working within the new demo and when using web components.
- General availability of the new UI libraries.
- General availability of new HTML templates aligned with the new UI libraries.
- General availability of IMaterial interface for improved material management in the WebViewer.
- Added experimental API for setting and getting draw modes per node. Information pertaining to this experimental API can be found here under the section Per Node Draw Mode Override. This API isn’t definitive and may change in future releases.
Package Changes
The following packages are now available via NPM:
| Package | Description |
|---|---|
| @ts3d-hoops/web-viewer-components | Library for Advanced UI elements |
| @ts3d-hoops/ui-kit | Library for simple UI elements |
| @ts3d-hoops/web-viewer | Multi files version of HOOPS Visualize Web WebViewer |
| @ts3d-hoops/common | Dependency for HOOPS Visualize Web WebViewer @ts3d-hoops/web-viewer |
| @ts3d-hoops/streamcache | Dependency for HOOPS Visualize Web WebViewer @ts3d-hoops/web-viewer |
| @ts3d-hoops/sc-engine | Dependency for HOOPS Visualize Web WebViewer @ts3d-hoops/web-viewer |
| @ts3d-hoops/web-viewer-monolith | Monolithic version of HOOPS Visualize Web WebViewer |
Additionally, two dedicated React wrappers have been published to support React-based applications:
| Package | Description |
|---|---|
| @ts3d-hoops/web-viewer-components-react | React wrapper for @ts3d-hoops/web-viewer-components |
| @ts3d-hoops/ui-kit-react | React wrapper for @ts3d-hoops/ui-kit |
These packages are actively used in our demo application and are fully supported for production use.
Fixed Bugs
| Issue | Description |
|---|---|
| SDHC-20240 | Corrected PMI display in model view. |
| SDHC-20216 | Corrected the @ts3d-hoops/web-viewer package main path typo in package.json. |
| SDHC-20178 | Added activateDefaultCadConfiguration(false) after resetting the nodes. |
| SDHC-20150 | The navCube now checks if the mouse is inside its overlay before triggering a navCube selection. |
| SDHC-19980 | Handling fixed for very small font sizes defined for some Creo PMI variable texts. |
| SDHC-19683 | Fixed CATPart shattered. |
| SDHC-19211 | Memory leaks fixed. |