#####################
Distribution Content
#####################

*   **client**
      
    The client part of |ProductName|.

    -   CeeEnvisionWebComponents.js: A minified version of the |ProductName| client. 
    -   CeeEnvisionWebComponents.d.ts: TypeScript declaration file for all the components
   
*   **server/UgServer**

    The ready-to-run server for remote CAE models (:js:class:`~cee.ug.RemoteModel`) in the ug component. The 
    server consists of:

    -   The CeeUgServer.node Node.js Add-on for reading, managing and creating visualizations of CAE data. You should use
        the Add-on appropriate for your license, see the :doc:`License <license>` section below.
    -   JavaScript files implementing the WebSocket server.
    -   package.json file describing the dependencies (of which there is just one - Socket.io).

    The server has an optional REST API for adding models and for querying models. These options can be enabled with 
    environment variables.

    See the :doc:`Getting Started <server-remote-model>` section for instructions on how to start the server.

    Docker version: https://hub.docker.com/r/ceetron/envision-ug-server/

*   **server/CugServer**

    A high performance stateless REST-API based server for the 
    :js:class:`~cee.cug.ConstantRemoteModel` with very low server resource usage.

    Models needs to be converted into a CUG database format before they can be streamed. See (:js:mod:`cee.cug`) 
    for more info.

    Docker version: https://hub.docker.com/r/ceetron/envision-cug-server

*   **server/PtServer**

    A stateless REST-based server for particle visualization (:js:class:`~cee.pt.ParticleModel`). The server streams
    pre-computed time-stepped particle simulation data (PTFX, VTP) to the client. It supports horizontal scaling
    and multi-session access. The server consists of:

    -   The CeeParticleAddon.node Node.js Add-on for reading and serving particle datasets.
    -   TypeScript files implementing the HTTP/REST server (Express-based).
    -   package.json file describing the dependencies (Express).

    The server exposes a REST API with optional query and upload endpoints, controlled by environment variables
    ``CEW_PT_ENABLE_REST_API_QUERY`` and ``CEW_PT_ENABLE_REST_API_UPLOAD``. Reader plugins can be loaded at runtime
    via ``CEW_PT_READER_PLUGIN_FOLDER`` for custom file format support.

    See the :doc:`Server for Particle Models <server-particle-model>` section for instructions on how to start the
    server.

*   **server/GeoServer**

    A high performance stateless REST-API based geometry server with very low server resource usage.
    The server is written purely in TypeScript and only requires Node.js to run (no native Add-on), and there is no 
    web-socket dependency.

    From the client, the :js:class:`~cee.geo.GeometryModelRemoteLoader` can be used to 
    progressively populate a :js:class:`~cee.geo.GeometryModel`. The loader supports an optional 
    low res GeometryModel that can be used to show a low res version of the model while the full res version is being 
    downloaded. The DemoAppGeo example application includes a demonstration of this.

    The server uses a generic DataStore, and comes with implementations of a Redis based and File based DataStore.

    Docker version: https://hub.docker.com/r/ceetron/envision-geo-server/  
   
*   **Documentation** 

    Detailed documentation for each class and function in |ProductName|.
    Open Documentation/index.html to start browsing the documentation. You can also access the latest documentation
    at https://docs.techsoft3d.com/hoops/latest/envision-web/index.html

*   **Examples**

    `Example client applications <http://envision.ceetron.com/>`_ demonstrating how to use |ProductName|:

    -   **CloudPost**: A post-processor powered by Envision. Written in TypeScript, but JavaScript files are also 
        included. Uses JQueryUI
    -   **Angular**: A simple post-processor powered by Envision using Angular as the UI toolkit.
    -   **React**: A simple post-processor powered by Envision using React as the UI toolkit.
    -   **Svelte**: A simple post-processor powered by Envision using Svelte as the UI toolkit.
    -   **Vue**: A simple post-processor powered by Envision using Vue as the UI toolkit.
    -   **DemoAppUg**: An app showcasing some of the features of the Remote Model. Written in JavaScript.
    -   **DemoAppCug**: An app demonstrating the constant remote model. Written in TypeScript, but JavaScript files are 
        also included.
    -   **DemoAppGeo**: An app demonstrating some of the features of the Envision geo module. Written in TypeScript, but 
        JavaScript files are also included.
    -   **DemoAppUsg**: An app showcasing some of the features of the Unstruct Surface Grid client side FEA model. 
        Written in TypeScript, but JavaScript files are also included.
    -   **MinimalGeoTypeScript**: A minimal example of how to get Envision geo module up and running using TypeScript.
    -   **MinimalPtTypeScript**: A minimal example of how to get the Envision particle module up and running using
        TypeScript. Demonstrates connecting to the PtServer, opening a dataset, animation playback, and scalar field
        display.
    -   **MinimalUg**: A minimal example of how to get Envision up and running using JavaScript.
    -   **MinimalUgTypeScript**: A minimal example of how to get Envision up and running using TypeScript.
    -   **MinimalUgTypeScriptGlobal**: A minimal TypeScript example of how to import Envision using a global script 
        reference and a global variable definition.
    -   **MultipleViews**: A minimal example for creating, managing, and syncing multiple views in |ProductName|.
    -   **Usg_RemoteMonitoring**: An app demonstrating streaming/monitoring of a live feed of simulation results.
    -   **Usg_RemotePlayback**: An app demonstrating animation playback of a FEA model with multiple states.
      
    Docker version of examples: https://hub.docker.com/r/ceetron/envision-examples/

    A more complete example, **Analyzer Cloud**, can be found at https://analyzer.ceetron.com. This is a
    web based post-processor that uses |ProductName|. You can try this with your own data by using Docker:
    https://hub.docker.com/r/ceetron/analyzer-cloud
 
*   **TestModels**
  
    A few VTFx test models used by the example apps.
