Technical Overview

HOOPS Communicator enables the development of rich 3D web applications for viewing and interrogating CAD data in a web browser. Its high-performance graphics kernel combined with advanced client/server streaming technology allows for fast interaction with even the largest models.

The Communicator Web Viewer supports the full richness of engineering data including PMI, CAD Views, physical properties, and other content related to model structure. It also enables complex interrogation of CAD data, including precise measurements, and offers an extensive set of markup types for annotation.

HOOPS Communicator offers a complete authoring API for creating CAD models from scratch as well as a rich API for customizing and extending the capabilities of the Web Viewer. Coupled together, these APIs make Communicator flexible enough for nearly all types of browser-based engineering applications.

Built on top of the HOOPS Exchange, HOOPS Visualize, and HOOPS Publish products, HOOPS Communicator fully leverages Tech Soft 3D's domain-specific expertise and, when combined with a HOOPS Exchange license, offers access to a wide variety of 3D formats through HOOPS Converter.

HOOPS Communicator consists of three major components:

    HOOPS Converter is a standalone executable (also available in library form) that is usually deployed on a web server. Combined with an Exchange license it can convert 20+ CAD formats to a Stream Cache (SC) model, a format derived from the PRC standard that's optimized for streaming 3D data to a web browser. Additionally, it facilitates export to a variety of other formats like 2D images, STL, and HTML.

    HOOPS Web Viewer is a client-side JavaScript application for viewing and interrogating 3D models within a browser. HOOPS Web Viewer works across all major browsers on all major mobile and desktop platforms.

    HOOPS Server is the server back-end that provides the infrastructure to manage a scalable HOOPS Communicator-based web service.

Architectural Diagram of HOOPS Communicator

HOOPS Converter

HOOPS Converter is an executable (or library) commonly used on a web server as part of a service. It supports a small number of input and export formats on its own and, when combined with HOOPS Exchange, can read 20+ CAD file formats and convert them into an optimized format called "Stream Cache" that is then streamed to the HOOPS Web Viewer. A full list of supported file formats is located here.

During the import process, HOOPS Converter is able to generate an XML mapping table that associates the individual parts of an assembly to their corresponding identifiers in your database. This mapping table can be used to connect the 3D model to business intelligence and other metadata associated with the 3D model, allowing developers 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 selecting a certain part within an 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 zero-install client-side component for viewing and interrogating CAD models within a web browser. It is engineering-focused and provides the standard functionality expected from a modern viewer, including various types of camera manipulation, sub-entity selection, and isolation/hiding of parts of the model. It also works with touch-enabled devices.

In its default mode, HOOPS Web Viewer connects to a web server and streams the "Stream Cache Models" generated by HOOPS Converter. The viewer is completely customizable with a rich API that gives developers control over every aspect of its functionality.

Users are able to navigate the model tree, calculate physical properties, query user attributes, perform measurements, and navigate View and PMI data. Annotations are also supported, and can be saved as a JSON stream and shared with other users.

HOOPS Web Viewer can be configured to run with either client- or server-side rendering:

Client-Side Rendering [WebGL]

In this mode all the geometry data making up the converted model is streamed to the Web Viewer and rendered via WebgL, thereby leveraging the processing power of the user's device. Depending on your streaming configuration, some model data will reside on the server and will only be sent to the client on-demand.

Server-Side Rendering [SSR]

When HOOPS Web Viewer is set up for server-side rendering, all rendering of the 3D model is performed on the server. To support this mode the server running Communicator on your back-end must have a fairly powerful CPU/GPU combination to support interactive framerates while handling (potentially) multiple viewing sessions.

HOOPS Server

This native application provides a REST API for spawning and monitoring viewer processes. Each machine dedicated to viewing runs a copy of this application.

Next Steps

To become more familiar with the features and setup of HOOPS Communicator, we recommend the following:

  • Download the latest package from the Developer Zone
  • Navigate to the "quick_start" directory and run "start_server.bat/sh" to deploy the Communicator server on you local machine
  • Open \quick_start\index.html in a browser, where you'll find examples that demonstrate both client-side and server-side rendering as well as an assortment of basic features such as operators, cutting planes, and markup. (JavaScript code for these examples is located in the web_viewer/examples directory of the download package.)

For more details on evaluating HOOPS Communicator, please visit the Quick Start page.