HOOPS Communicator is a cloud and mobile solution that can be integrated with your own cloud services to enable the viewing, inspection, and sharing of 3D manufacturing and construction data on the fly. HOOPS Communicator is built on top of foundational HOOPS Exchange, an engineering-focused graphics kernel and HOOPS Publish technology.
HOOPS Communicator prepares data for viewing to support different workflows:
- Using the included HOOPS Web Viewer as a zero-client solution in a browser on a desktop and mobile devices
- Viewing on a desktop or mobile device through a custom native app built with the HOOPS Cloud Platform
- Viewing and sharing in a 3D PDF file, accessible through the free Adobe® Reader® on desktop systems or with the 3D PDF Reader currently available for iOS in the Apps Store and for Android on Google Play
- Providing a simple 2D image of the data to use as a thumbnail for fast visual referencing
HOOPS Communicator Architectural Overview
HOOPS Communicator consists of two parts:
HOOPS Converter is a program that runs on a web server. It imports models and converts them into a format that is optimized for web browsers. You can also convert the data into more accessible forms like images, STL and 3D PDF. HOOPS Converter can also associate each piece of the model with an external identifier, which can serve as a key into your business data, presenting the user with relevant information from your database that isn’t included with the model file.
HOOPS Converter is a command-line program that can be run on a web server. It can read over 20 different CAD file formats and convert them into a form that is usable by HOOPS Web Viewer. Some of the other formats supported are PDF (3D), STL, and the PNG image format.
During the import process, HOOPS Converter is able to generate an XML document that can be used to associate the individual parts of the digital model to their corresponding identifiers in your database. This allows the developer to provide additional information to the user that is not embedded in the model file itself. For example, while viewing a model, a typical user operation might be to select a certain part assembly. Because the XML document associates the selected part with your internal data, the developer could choose to display the part number, manufacturer, quantity on hand, and any other data associated with that particular component.
HOOPS Web Viewer
HOOPS Web Viewer is the client-side application used to view and interact with 3D CAD models in a web browser. It reads the files generated by HOOPS Converter from a remote web server. HOOPS Web Viewer can render on either the client or the server.
Users are able to navigate the model tree, query the properties of model objects, perform measurements, and view Product Manufacturing Information (PMI). You can also save your annotations as a JSON stream and share them with other users. In order to accentuate important pieces, HOOPS Web Viewer can select, hide, isolate and color individual parts of the model.
One of the major benefits of using HOOPS Web Viewer is that there is no separate client application to develop, deliver, or maintain. Since the application is run in a web browser, the HOOPS Web Viewer is downloaded transparently, just like the content of any other website.
Since the HOOPS Web Viewer is just an HTML page, the default look and feel of the application is customizable. HOOPS Web Viewer APIs even allow you to set which mouse events control different camera manipulations for full control of the user experience.
The presentation is completely interactive, giving the user access to all the typical operations, such as pan, zoom, and rotation. Other operations can also be enabled, such as query and measurement. HOOPS Web Viewer supports pinch-to-zoom camera behavior for touch-screen devices. Many of the operations can be customized if your application requires special functionality.
Client Side Rendering (WebGL)
As WebGL relies on the client hardware to do all of the rendering, it must be sufficiently capable of rendering 3D graphics at interactive speeds.
Server Side Rendering (SSR)
When HOOPS Web Viewer is set up for server-side rendering, all rendering is performed by the web server. As the user interacts with the model, the server renders each frame and streams an image back to the client’s web browser for display, minimizing hardware requirements. The presentation performs at interactive speeds, giving the user the appearance of real-time rendering on the local machine.
There are many benefits of SSR. First of all, the client machine is not required to support WebGL or have 3D hardware. Since the client computer is only responsible for drawing the rendered image as sent back by the server, SSR works on any browser that supports the HTML5 Canvas object. Additionally, SSR enables end users to interact with very large models even when the client machines’ hardware limits would otherwise prevent acceptable performance.
When HOOPS Web Viewer is set up for server-side rendering, all rendering of the 3D model is performed by the GPU on the web server. As a result, your server back-end must include an instance which is equipped with a GPU. The NVIDIA GRID technology is often used in these situations. As the user interacts with the model, the server renders each frame and sends an image back to the client’s web browser for display, minimizing hardware requirements. The images are sent in real-time and so it will appear to the user as if the rendering is being done in real-time on the local machine.
Please note that SSR is only used for the 3D model rendering – all other capabilities like buttons and the model browser are done on the client side via HTML. This includes all user-created measurement and markup data.
The main benefit of SSR is the fact that only an image is sent to the client and so the user can start interacting with the model almost immediately. SSR also allows you to access high-powered GPU technology which can also offer significant benefits with very large models. The major downside is that using SSR shifts the hardware requirements to the server.