Architecture Overview

The top level object in EnvisionWeb is the CloudSession. All apps must initialize this before they start using EnvisionWeb. The CloudSession object manages all the Viewer in use, and also handles the rendering and background processing of all changes in a requestAnimationFrame() callback. A Viewer is tied to a HTML5 Canvas element. A Viewer can have one or more Views.

_images/TopLevel_diagram.png

Models

A view is capable of showing 0..N models. You can combine different types of models in a view to create compound visualizations.

_images/Models_diagram.png

Unstruct Grid Module (cee.ug)

The RemoteModel implements all features required to create a full post-processing experience in a browser. It uses a server (UgServer) to read and process the CAE model, and uses 3D Progressive Object Streaming to quickly send the relevant visualization data to the client. The user focuses on specifying what to show (result, states, cutting planes, etc) and the Remote Model handles all the interaction with the server and all the visualization.

See cee.ug for more information.

_images/ugModule_diagram.png

Constant Unstruct Grid Module (cee.cug)

The ConstantRemoteModel provides a constant remote model designed for viewing CAE models. The ConstantRemoteModel can show any visualization that the RemoteModel can show, but with limited options for modifying the current setup. States, result selection, feature extraction etc. is fixed, but the model can be animated, interacted with, parts can be shown or hidden and model mesh can be turned on or off.

The big benefit of the CUG model is that it only requires a stateless REST-API based server which consumes very little resources on the server side, independent of the model size. It will also start streaming immediately, independent of the model size.

See cee.cug for more information.

Unstruct Surface Grid Module (cee.usg)

The UnstructGridModel is a client side (in browser) FEA model for surface elements. It is suited for any size FEA surface models (as long as the part count is <10k), and supports any kind of surface elements (1..N nodes per element). The model is defined by elements and nodes, and support scalar, vector, displacement and transformation results. The model has support for any number of states (time steps). Supports calculation of element-aware surface normals and element mesh lines as well as model outline. It also supports ray intersection at the element level. The model features all draw styles (surface, surface mesh, outline, lines, points, transparent surface). The model handles only one result of each type at any given time, so you will have to handle the result database in application code. Components for implementing a stateless server for progressive streaming of models as well as a reference implementation will soon be available.

See cee.usg for more information.

_images/usgModule_diagram.png

Geometry Module (cee.geo)

The geometry model is a client side (in browser) model suited for models with only geometry or simple scalar results. This modes does rebatching of parts and has an optimize renderer capable of handling >300k parts. This is the only EnvisionWeb model with this capability.Can be used with the GeoServer for 3D Progressive Object Streaming of models. This stateless, REST API based server comes with support for file and Redis based storage, and can also be extended with other DataStores.

See cee.geo for more information.

_images/geoModule_diagram.png

Markup Module (cee.mrk)

The markup model supports rendering of labels and more simple geometry. It is useful for creating annotations and other markup of the 3D model.

See cee.mrk for more information.

_images/mrkModule_diagram.png