#####################
Modules
#####################


-   **Global** (:js:mod:`cee`): |br|
    Main component with general classes like :js:class:`~cee.Viewer`, :js:class:`~cee.View`, :js:class:`~cee.Model`, 
    :js:class:`~cee.Overlay`, etc. Also has base classes like :js:class:`~cee.Color3`, :js:class:`~cee.Color4`, 
    :js:class:`~cee.Vec3`, :js:class:`~cee.Mat4`, :js:class:`~cee.Ray`.
    Use these classes in combination with one or more of the components below to create an application.

-   **Remote Model** (:js:mod:`cee.ug`): |br|
    The :js:class:`~cee.ug.RemoteModel` supports a full post processing session with a CAE model on a remote server. 
    The CAE model with its results is kept on the server and only the data needed for displaying the model (triangles, texture coordinates, etc) 
    are streamed using *3D Progressive Object Streaming* to the client. 
    Handles FEA and CFD models, and has features like :js:class:`isovolumes <cee.ug.Isovolume>`, 
    :js:class:`particle traces <cee.ug.ParticleTraceGroup>`, :js:class:`cutting planes <cee.ug.CuttingPlane>` 
    (all computed on the server). 
    Cannot be used without a UgServer, and the server requires a unique (sticky) session per concurrent user.

-   **Constant Remote Model** (:js:mod:`cee.cug`): |br|
    The :js:class:`~cee.cug.ConstantRemoteModel` supports an efficient and scalable streaming of pre-defined CAE model configurations. The server
    is a stateless REST API based server that has very low resource usage on the server side and is easy to load balance. The streaming also 
    starts immediately when a model is opened,
    no matter the size of the model. Similar to :js:class:`~cee.ug.RemoteModel`, it utilizes *3D Progressive Object Streaming* to the client. 
    The model needs to be converted into a CUG database format before it can be streamed. This is done with the included *CugComposer* command line 
    utility. 
    The :js:class:`~cee.cug.ConstantRemoteModel` is used in the viewer on Ceetron Cloud.

-   **Unstruct Surface Grid** (:js:mod:`cee.usg`): |br|
    Client side (in browser) FEA model for surface elements. 
    Suited for any size FEA surface models (as long as the part count is <10k). 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. 

-   **Stream Model** (:js:mod:`cee.vs <cee.vs>`): |br|
    Client side (in browser) streaming model designed to work in pair with the Visualization Streamer Service (VizService) to which it requires a live connection. 
    It handles fast and efficient streaming of 3D data to web while being specifically tailored towards showing CAE visualizations. 

-   **Geometry** (:js:mod:`cee.geo`): |br|
    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 |ProductName| model with this capability. 
    Can be used with the server/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.

-   **Markup** (:js:mod:`cee.mrk`): |br|
    Markup model with support for rendering labels and more simple geometry. Useful for creating annotations and other markup of the 3d model.

-   **Utilities** (:js:mod:`cee.utils`): |br|
    Various helper classes for the components above. 

