Technical Documentation

HOOPS Publish

This section provides a brief overview of HOOPS Publish in the form of an FAQ together with a description and details of the core PRC format at the heart of the 3D PDF standard. HOOPS Publish is designed as an easy-to-implement publishing tool for generating rich 3D PDF documentation from your application.

What is HOOPS Publish?

HOOPS Publish is a software development kit which enables developers to easily author or read 3D data from the industry standard PDF format. It is the only SDK in the market based on the same technologies used in Adobe Reader and as a result offers developers 100% compatibility with Adobe Reader and the Acrobat family of products. Developers can author advanced, interactive 3D PDFs by using PDF templates or by creating PDF documents directly via the HOOPS Publish API.

The typical workflow for creating a 3D PDF with HOOPS Publish

The 3D data can be defined directly via an API or by providing a 3D file. The API can also be used to enrich the data coming from a file. Examples of enriching the data could include adding Product Manufacturing Information [PMI], Javascript, or Animation data.

HOOPS Publish can create a document in any of Acrobat’s supported 3D formats (U3D, PRC and PDF). An unlimited number of images and text can be added. If PDF is chosen as the file format, the developer can use the default PDF document or provide a customized PDF template.

Defining the 3D model

The preferred way of defining your 3D data is via an API however you can also do so by providing a PRC, U3D or VRML file. When the data is embedded in the PDF document you have a choice of saving it as either U3D or PRC data. PRC is Adobe’s preferred 3D format and is a more engineering focused format. A more detailed review of the PRC file format can be found below.

Developers who want to embed native CAD formats directly into a PDF can use the HOOPS Exchange technology in conjunction with HOOPS Publish to do this.

When imported into HOOPS Publish, all of the rotation, zoom, and pan controls are already in place. The end-user is able to manipulate the model in a standard way with no additional effort from your developers.

3D PDF major capabilities

In addition to encapsulating a 3D model in a context that can be manipulated via pan, zoom, and rotation, HOOPS Publish also allows the developer to add the following elements to the PDF document:

  • templates, tables, buttons
  • PMI data, text, and images
  • multiple pages, multiple 3D windows, multiple views
  • Javascript
  • animations

You have full control over the position, size, and formatting of these elements.


PDF templates can be used if you want to create documents which have interactive elements or if your document has sophisticated formatting needs, such as displaying tabular data. Templates also allow you to include interactive elements for interactivity. An interactive document contains familiar GUI widgets which can be programmed to affect other parts of the document. For example, if your document needs to have a button which causes an object to be highlighted in the 3D window, a PDF template is an appropriate choice. Through templates, you can create an unlimited number of tables and text boxes which you can populate dynamically. These widgets support advanced font styling characteristics which may also be desirable to your users.

Screenshot of a PDF document with Tabular Data

You are provided with several sample templates with the HOOPS Publish package. However, you are free to create your own PDF templates for use with HOOPS Publish. You can also take any of the templates or images included on the HOOPS Publish media and use them as a basis for your own template. Using templates is completely optional.

Adobe Acrobat Standard and Acrobat Pro both allow you to create PDF templates. You can either start from a blank page or use an existing PDF document which you can then turn into a form via the Acrobat Forms menu. Once you’ve created a form you can add as many text fields and buttons to the document as you like. You should then save this file out as a PDF document and use it as your PDF template. The form objects you created will then be accessible to you via the HOOPS Publish API so that you can populate them with your data.

PMI Data, Text, and Images

Product Manufacturing Information [PMI] refers to the lines, text, symbols, and other annotations that convey non-geometric information necessary for the real-world manufacturing of a product. PMI is fully supported by HOOPS Publish. Developers may use the PMI imported with a source file or can create it directly via our APIs.

You can also add any number of images and text to the PDF file to convey the necessary information.

The end user is able use the context menu to highlight datum surfaces associated with particular PMI:

Multiple pages, multiple 3D windows, multiple views

HOOPS Publish gives the developer the ability to create a 3D PDF file with multiple pages, 3D windows, and Views. This allows you the option to distribute a single PDF with all required information instead of distributing a group of files.


Javascript is the language used to create interactive PDF documents. If you want to have a user action (a button click or otherwise) cause something to happen in the 3D window, you need to use the Acrobat 3D Javascript interface. HOOPS Publish allows users to embed their javascript into the PDF document. The HOOPS Publish media also includes a number of sample programs which include Javascript which developers can use for reference. These samples show how to do common tasks like change the rendering mode, highlight an object, or set a camera on a scene.

PDF Unique Identifiers

HOOPS Publish lets you query the PDF unique identifiers for all the objects in the 3D model. These unique identifiers can then be used in a your Javascript code to do a variety of tasks like highlighting specific objects, moving objects in the 3D scene or implementing advanced animations.


Developers can support animation in one of two ways. First, they can provide a U3D file which already contains an animation. Secondly, a developer can embed Javascript within the PDF document which implements animation. The SDK provides the ability to find the unique identifiers of 3D objects which can be used to write sophisticated animations.

Image generation

HOOPS Publish allows developers to create 2D image snapshots of the 3D model. These images can be predefined or can be created from user defined positions and of a user defined width and height. This allows developers to create poster images for the 3D window and to also use these images for other reasons in other portions of the document.

Security, compression, and external files

Developers can password-secure their PDF documents. This is based on the standard password security mechanism available in Acrobat. Thus, users will be presented with a very familiar interface for unlocking the document.

The PDF document has the standard file wide compression that Adobe implements via the PDF Library SDK. Additionally, the PRC file format includes advanced compression to significantly reduce the size of the 3D data. See the PRC File Format section below for further information on this topic.

The toolkit uses Adobe PDF library to create the PDF data and so the security and compression provided is similar to that available in the Acrobat product. Developers can also attach files to the PDF document. This could be used, for example, by a developer who wishes to include the original CAD data in the PDF document.

Adobe Reader minimum requirements

The PDF file version generated is 1.6, which is compatible with Adobe Reader 7.0 and above. But there’s also a limiting factor regarding 3D data which is the format chosen for the 3D inside:

  • U3D Ecma 1 is compatible with Adobe Reader 7.0 and above
  • U3D Ecma 3 is compatible with Adobe Reader 8.1 and above
  • PRC is compatible with Adobe Reader 8.1 and above

The PRC File Format

PRC format stands for Product Representation Compact Format. PRC is a highly accurate and highly compressed format for describing 3D CAD models including assemblies and product manufacturing information (PMI). A PRC file is a sequential binary file, written in a portable way.

The PRC format is an openly published format subject to ISO certification ISO/AWI 14739-1.

PRC supports PDF-based documentation workflows and can also be used as an independent 3D visualization file format. By using PRC, documents can be created that are interoperable with Computer Aided Manufacturing (CAM) and Computer Aided Engineering (CAE) applications. PRC supports documentation requirements for design reviews as well as distribution of detailed design documentation to supply chains. In addition, its use can help support regulatory mandates which require the use of open standards.

Specifically, PRC supports the following data forms:

  • Allows storage of large CAD files in a highly compressible form that is a fraction of the original size. The complete product structure of the parts defined by the CAD system is contained in a PRC file.
  • Can represent Product Manufacturing Information (PMI), which includes Geometric Dimensioning and Tolerancing (GD&T) and Functional Tolerancing and Annotation (FT&A).
  • Allows geometry use in CAD, CAM, and CAE applications. The geometry can be stored in either a tessellated or precise form.

PRC is currently used in 3D documentation workflows for several large industries, including aerospace, automotive, and architecture. The manufacturing industry has come to rely on PDF for the exchange of manufacturing documentation, distribution of service and parts manuals, and capture and submission of regulatory documentation.

The release of PRC to ISO has accelerated innovation around PRC, driving even broader adoption of PRC, and is helping to ensure that PRC evolves to meet the 3D documentation needs of product manufacturing and related industries.

While there are a number of other 3D file formats, PRC integrates well with document formats such as PDF and XML.

Specifically, PRC supports:

  1. Structural and geometrical representation

    PRC has direct support for a wide variety of high order primitives that correspond to those used by CAD applications. This permits more of the original design intent of the file to be retained. Compared to other 3D file formats, PRC retains more information about the product structure and relationships defined in the original design application. Other 3D formats take a more general or display-oriented approach to product structure. This may make it harder or impossible to reconstruct aspects of the original design relationships needed to support “manufacturing from a file” or maintenance workflows.

  2. File Size

    PRC captures meshes and compresses them far more efficiently than native CAD formats. Files containing both precise geometry and tessellated geometry can be significantly smaller when converted to PRC. This results in great benefits when transporting and storing the data, particularly over limited bandwidth or to wider groups of reviewers and consumers of this data. Even large 3D models can be easily shared over email.

  3. Product Manufacturing Information

    PRC can represent Product Manufacturing Information (PMI), which is used to primarily communicate the full design intent to suppliers and their shop floors. Without PMI embedded in the file format, OEMs are required to send many 2D drawings to their suppliers to communicate the full design intent. The use of PRC can reduce the need to create 2D drawings from 3D models for distribution to the supply chain.

ISO Certification for PRC

In December 2008 Adobe Systems released the PRC format to the AIIM (http://www.aiim.org). AIIM is an ANSI (American National Standards Institute) accredited standards development organization. AIIM also holds the Secretariat for the ISO (International Standards Organization) committee focused on information management compliance issues, TC 171. TC 171 is the ISO committee that developed the existing ISO standards relating to Adobe PDF/A and PDF/E. Accordingly, AIIM is an authority that ANSI uses to submit proposed standards to ISO.

In June 2010 Adobe transitioned future development of the PRC standard to Tech Soft 3D, who is committed to working together with AIIM to develop the PRC specification as an open ISO-certified standard. The current expectation is that the standard will have completed the ISO process and be a formal standard in September, 2013.

Reducing file size

Files stored in the PRC format can be highly compressed. A compressed PRC file written by HOOPS Exchange can be typically 100 times smaller than the original proprietary CAD file and is typically three times smaller than U3D, a legacy 3D format still used in PDF.

Regular Compression

Regular compression refers to directly representing the CAD data without loss or transformation from the original CAD system. Regular compression includes:

  • Modeller-specific representations of curves and surfaces that are often significantly more compressed than a generalised NURBS representation. Preserving them leads to a file that is both smaller and contains more accurate data.
  • The PRC format has the concept of current values for certain state information. This means that this state information is not unnecessarily duplicated within the file.
  • All sections of a PRC file except header sections are individually compressed with a Flate method. The Flate method is based on public-domain deflate compression, which is a variable-length Lempel-Ziv adaptive compression method cascaded with adaptive Huffman coding. This form of compression is considered to be “lossless”. It occurs systematically whatever the actual content of the PRC file, and even if it also contains compressed parametric or tessellated geometry.

High Compression

Both parametric and tessellated geometry can be stored in a compressed form in the PRC file to a specified physical tolerance relative to the original shape. This tolerance is typically 0.001mm for parametric data and 0.01mm for tessellated data.

For NURBS data knot vectors, multiplicities, control points and weights are all stored in a compressed format. NURBS can also be approximated using simpler canonical surface forms such as planes and cylinders. For tessellated data triangle meshes, vertex coordinates, normals and textures are all compressed.

A variety of lossy techniques are used including variable coordinate basis, elimination of redundant coordinates and storage of floating point numbers in reduced numbers of bits depending on required precision.

Loading posts...