HOOPS Communicator Technical Documentation

HOOPS Communicator

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, HOOPS Visualize and HOOPS Publish technology.

HOOPS Communicator has two components. The first is a server-resident file processor called HOOPS Converter, which interrogates over 20 formats, and extracts all information necessary to prepare the content for intelligent viewing and sharing across mobile platforms. The second is a JavaScript viewer called the HOOPS Web Viewer, which runs in a web browser and allows dynamic querying and interaction with the 3D data. The HOOPS Web Viewer enables you to deeply interrogate data that originates in manufacturing formats, including browsing the assembly tree, querying the physical properties and reviewing any PMI data. With additional software installed on the server backend, the HOOPS Web Viewer can also render on the server using the server-side rendering (SSR) mode.

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 platform
  • Viewing on a mobile device through the HOOPS Web Viewer in SSR mode or with the HOOPS Viewer apps, available for iPhone® or iPad® in the App Store℠, and for Android™ on Google Play™
  • 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 iPhone or iPad
  • 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 Web Viewer is a platform-independent, client-side JavaScript application used to view a web-optimized model in a browser. Getting an interactive CAD model into a browser is complicated, but HOOPS Web Viewer does this task for you.

HOOPS Converter

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. Those files are called HWFs. 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 associates 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 HWF files generated by the 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)

In this case, the HOOPS Web Viewer downloads the model file from the web server and uses WebGL to display it. WebGL is a JavaScript API for rendering interactive 3D graphics in a web browser without third party plug-ins. It is available in most modern browsers by default, and can be enabled in others if necessary.

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 sends 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 using WebGL.

The HOOPS Communicator SSR component is made up of three parts: a web server, a remote rendering manager [RRM], and a collection of remote renderer instances.

  • Web server – SSR is currently built around Microsoft Internet Information Services. The web server’s job is to intercept the client’s request and pass it off to the remote rendering manager. The client requests come from the HOOPS Communicator API, embedded as JavaScript in a web page made available by the developer. The developer is responsible for calling the JavaScript API in response to whatever GUI events are triggered by the end user.
  • Remote rendering manager – The RRM is a standalone .exe that runs on the server either as an application or a service. It is a .NET4 program that listens for requests from the web server on a TCP port that you specify. The RRM acts as the interface between the web server and each instance of the remote renderers.
  • Remote renderer instances – When a client makes a request to load, manipulate, or inspect a model that requires the scene to be redrawn, the remote renderer serves that request by sending back a new image that reflects that interaction. Each instance of the remote renderer handles a single scene. If more than one client is active on a particular server, a separate instance of the renderer is created by the RRM. Each remote renderer operates with the full power of HOOPS Visualize and is able to take advantage of the server GPU to perform hardware-accelerated rendering. Each remote renderer is an instance of a standalone .exe application. However, the RRM is responsible for its life cycle – you only need to specify its location.

The process is illustrated in the following diagram:

Loading posts...