PDF in three dimensions

There are two ways to put 3D models into a PDF file. Neither of them is an extension of the two-dimensional PDF model. Rather, they’re technologies which were developed independently, which can be wrapped into a PDF, and which software such as Adobe Acrobat can work with.

PDF has become a container format as much as a representational format. It can hold anything, and some of the things it holds have more or less official status, but there are no common architectural principles. The two formats used with PDF are U3D and PRC. Both are actually independent file formats which a PDF can embed.

U3D

The older way to put 3D into PDF is with U3D, Universal 3D File Format. It’s defined by the ECMA-363 standard.

A U3D file consists of one or more blocks. The only required one is the file header. The format is extensible, with a provision for defining new block types. Node blocks do the bulk of the work, defining pieces of the model. Nodes can be organized hierarchically for groupings and sub-assemblies. There’s no resemblance at all to the structure of a PDF file; it’s just incorporated into PDF as an annotation with an accompanying stream. Adobe Reader knows how to handle an embedded U3D object. In fact, standalone U3D has become less common than PDF with U3D.

PRC

The newer 3D format is PRC (Product Representation Compact). It’s not just a 3D format but a CAD format. ISO standard 14739-1:2014 specifies its details. Adobe describes the format on its own site. There are tools for creating PRC files or PDF files with embedded PRC.

A PRC file consists of “product occurrences,” which can be organized hierarchically. A product occurrence can refer to a “part definition,” which contains geometrical data. Adobe’s description is in pseudocode rather than laying out the file structure, which is annoying for anyone trying to understand the format.

The PDF/E-2 specification, for engineering applications, defines a standard way of including PRC streams in PDF. PDF/E-2 is based on PDF 2.0.

The implications

It’s tricky to say whether 3D models are a part of PDF 2.0 or not. The format specifications are separate, but Adobe treats 3D as part of the format. PDF 2.0 “add support for” PRC, and 3D objects can be associated with reference coordinates. This is a higher level of integration than movie and sound annotations.

What really constitutes a “conforming reader” for PDF? According to PDF 1.7, “A conforming reader shall comply with all requirements regarding reader functional behaviour specified in ISO 32000-1.” I don’t know if it’s changed in PDF 2.0. While I’d really like a copy of the ISO standard, I’m not going to spend 198 Swiss francs on it! But if we go by version 1.7, the question hinges on whether the format’s functional behavior incorporates U3D and PRC by reference. In other words, is a PDF reader deficient if it doesn’t support 3D?

But it’s not so much the official pronouncements that matter as user expectations. If an archive stores PDF 3D files today and someone tries to view the 3D portions in 2038, will they have any luck? That may depend on whether Adobe Reader or some equivalent is still around then. I wouldn’t count on other readers incorporating U3D and PRC as a matter of course.

One response to “PDF in three dimensions

  1. Interesting article. One thing that might be interesting to note is that the PDF ISO committee (TC 171 SC 2 WG 8) is working on a proposal to add STEP as a valid 3D format in PDF. STEP is designed for long term archiving and should help alleviate any concerns for long term archiving of 3D PDF file.