# Envision 3.2

Apr 30, 2025 - SHA: 5a46dff9

Envision for Web Envision for Desktop

Note

Starting with this release, Envision no longer supports macOS on Intel-based systems. Support for macOS on ARM64 (Apple Silicon) continues to be available.

## New Features

### CAE-1410 New component: Visualization Streamer

The Visualization Streamer is a cutting-edge addition to the Envision Web toolkit. It enables seamless streaming of ready-to-render display models from server-side services, such as legacy desktop applications, directly to web applications. Additionally, it supports advanced workflows, including microservices that perform machine learning tasks on CAD or CAE models and deliver modified display models to web applications.

It consists of several parts:

- VizStreamer Service - A server application with a gRPC interface capable of receiving CAE display data and streaming it to the Stream Model client model.
- VizStreamer Proxy - A C++ proxy (header files + static lib) to make it easy to send data from a C++ application to the VizStreamer Service.
- Stream Model - A Envision Web client-side model capable of rendering the 3D models sent from the VizStreamer Service.

Read more about the Visualization Streamer in the documentation: https://docs.techsoft3d.com/hoops/latest/envision-web/viz-streamer/index.html

### CAE-1237 Enable filling of cutting planes on surfacic objects

This feature introduces the ability to triangulate and fill cross-sectional geometry for surfacic objects.

It employs a callback-based design pattern, enabling users to define custom triangulation algorithms without altering the core codebase.

To implement this feature, users can derive a class from the `ug::CuttingPlaneTriangulationCallback` base class and override the `generateTriangles()` method. The custom callback is then passed to the underlying toolkit, where it is adapted for use.

The central component of this feature is the `generateTriangles()` virtual method in the `CuttingPlaneTriangulationCallback` class.

Input: CuttingPlaneContourData

- `contourVertices`: A list of 3D points defining the contour boundary.
- `contourEdges`: Edge connectivity, represented as indices into `contourVertices`.
- `planeNormal`: The normal vector of the cutting plane.

Output: CuttingPlaneTriangulationData

- `triangleIndices`: Indices defining the generated triangles (groups of 3).
- `triangleVertices`: The vertices used in the triangulation process.

Below is an example of a basic implementation that generates a single triangle:

    class SimpleTriangulationCallback : public cee::ug::CuttingPlaneTriangulationCallback
    {
    public:
        bool generateTriangles(const cee::ug::CuttingPlaneContourData& contourData, cee::ug::CuttingPlaneTriangulationData* result) override
        {
            if (contourData.contourVertices.size() < 3)
            {
                return false;
            }

            // pick a node from the start, 1/3, and 2/3 of the contour
            result->triangleIndices.push_back(0);
            result->triangleIndices.push_back(1);
            result->triangleIndices.push_back(2);

            result->triangleVertices.push_back(contourData.contourVertices[0]);
            result->triangleVertices.push_back(contourData.contourVertices[contourData.contourVertices.size() / 3]);
            result->triangleVertices.push_back(contourData.contourVertices[2 * contourData.contourVertices.size() / 3]);

            return true;
        }
    };

### CAE-1333 Add Acknowledgement pages to Envision

This feature introduces a new Acknowledgements page in the Envision documentation. This page provides a comprehensive overview of the open-source software and third-party components used in Envision, along with their respective licenses.

### CAE-1494 Updated to newer RapidJSON

This update integrates a newer version of RapidJSON (25.03.2025), ensuring compatibility with modern C++ standards and improving performance and stability. The upgrade includes fixes for known issues and enhancements to JSON parsing and serialization.

### CAE-1497 Resolved GCC 13 compiler support

This update resolves all known compiler errors on GCC 13, ensuring full compatibility and stable performance.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Envision for Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Envision for Desktop?
What are the latest release notes for HOOPS Envision for Desktop?
How do I start evaluating HOOPS Envision for Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...