Emulation and Rendering Tools (CPP-015)
| CPP-Identifier | CPP-015 |
| CPP-Label | Emulation and Rendering Tools |
| Author | Kris Dekeyser |
| Contributors | Bertrand Caron, Johan Kylander |
| Evaluators | Felix Burger, Maria Benauer |
| Change history | Comments |
|---|
| Version 1.0.0 - 2025-08-29 | Milestone version |
| Version 1.1.0 - 2026-04-10 | Migration to XML |
| Version 1.2.0 - 2026-05-18 | Reassigned step numbers based on new numbering rules. |
1. Description of the CPP
The TDA enables the rendering of Objects via the application of emulation and/or other
specialist tools.
Inputs and outputs
| Input(s) |
|---|
| Data | |
| Documentation/guidance | | Emulation and rendering policy |
|
| Output(s) |
|---|
| Data | | Representation rendered in a suitable environment |
|
Definition and scope
Digital preservation is all about ensuring long-term access to digital content despite the
challenges of obsolescence, degradation, and technological change. Emulation and
Rendering tools are important strategies in achieving that goal, and together with File
migration ensure that digital content remains usable to the Designated Community.
Emulation attempts to recreate the original habitat - both hardware and software - of the
digital Object in order to interact with it in the way it was intended. This is achieved by
preserving both the content and the experience of the original environment. The purpose of
emulation is to simulate the original operating system and the tools that are needed to
interact with the Object.
Rendering tools interpret and display the digital Objects in the current environment using
viewers based on modern technology. It is not uncommon for rendering tools to convert the
digital Object into a more accessible form before displaying it. In such cases, viewers and
converters collaborate to achieve the required result.
In addition to maintaining the Bitstream integrity of its holdings, semantic digital preservation
entails ensuring their continued readability and usability. This necessitates that the TDA
identifies the required environments and tools to support the actions its Designated
Community is authorised to perform, regardless of whether direct access to the holdings is
currently being provided.
Emulation and Rendering are two very different techniques to achieve a similar goal. They
differ in some essential aspects:
-
Authenticity: Emulation aims for the best authenticity by reproducing the entire look
and feel of the original environment. The output of the rendering process may do a
pretty decent job in reproducing the original Representation of the Object, but the
interaction will be simulated at best. The rendering’s conversion operation can be
lossy and generate a less accurate result. Rendering is also more vulnerable to slight
format changes and thus requires Format Validation.
-
User Experience: Again, Emulation obtains the highest score as it will reinstate the
original hard- and software as good as possible and allows the user to interact with
the Object to its full potential. Rendering will typically reduce the experience to a
read-only view of the data with a limited set of operations available.
-
Preservation Scope: In order to render the Object, only the content needs to be
preserved. For emulation, however, both content and its environment need to be
preserved.
-
Technical Overhead: The requirements for Emulation are very high. A lot of
resources (e.g. CPU and memory) are required to fire up the emulation. Moreover,
the configuration and maintenance of an emulation environment is complex and time
consuming. Performance may suffer and emulation does not scale easily. Rendering
on the other hand, is relatively simple to set up, especially when no conversion is
required or the conversion is done beforehand. Performance is mostly great, unless
the Object is stored in slow off-line storage. The technique causes little problems for
scaling.
-
Licensing: Licensing of the operating system and software interacting with the Object
may be a concern for emulation. For rendering of most common file formats, open
source libraries and tools are available and licensing is less of a concern.
The choice for emulation versus rendering is captured in the Emulation and Rendering
Policy. There are many possible decision factors and strategies for choosing emulation over
rendering. For example:
- Manual configuration by archive maintainer;
- Requested by consumer;
- Decision based on format;
- Decision based on Technical metadata;
- Decision based on collection preferences, policies, agreements with producer, etc.
Process description
Trigger event(s)
| Trigger Event | CPP-identifier |
|---|
| Access requested to a given Object | CPP-025 (Enabling Access) |
Step-by-step description
| No | Supplier | Input | Steps | Output | Customer |
|---|
| sequence |
| 1 | sequence - Initial strategy selection |
| 1.1 | CPP-025 (Enabling Access) | Representation identifier | Collect the Object's Representation |
Representation
Technical metadata
| |
| 1.2 | |
Representation
| Collect the Environment Objects associated with the Representation (if present) | Environment Objects | |
|
Technical metadata
|
| 1.3 | |
Representation
| Decide on strategy | Emulation (proceed to "Emulation") | |
|
Technical metadata
| Rendering (proceed to "Rendering") | |
| Environment Object |
CPP-012 (Risk Mitigation) CPP-018 (Community Watch) | Emulation and rendering policy |
| 2 | alternative - Emulation or Rendering |
| 2.a | sequence - Emulation |
| 2.a.1 | | Environment Object | Retrieve the emulation properties from the Environment:
- Hardware to be emulated
- Operation System type and version
- Tools to be installed in the OS
| Emulation information | |
| 2.a.2 | | Emulation information | Prepare Emulation environment:
- initialise the virtual machine based on operating system requirement
- install the software requirements
| Initialised emulated environment | |
| 2.a.3 | | Emulated environment | Inject or copy the Representation content in the emulated environment | Complete emulated environment | |
| Representation information |
| 2.a.4 | | Complete emulated environment | Start the emulated environment and redirect input and output to the consumer | | |
| 2.b | sequence - Rendering |
| 2.b.1 | CPP-025 (Enabling Access) | Representation identifier | Get the Object's representation |
Representation
Technical metadata
| |
| 2.b.2 | |
Representation
Technical metadata
| Retrieve the Representation content | Representation content | |
| 2.b.3 | | Representation Information | Make a choice of rendering tool | Rendering tool | |
CPP-012 (Risk Mitigation) CPP-018 (Community Watch) | Emulation and rendering policy |
| 2.b.4 | | Representation content | Execute the Rendering tool and hand over the Representation
content | | |
| Rendering tool |
Rationale(s) and worst case(s)
| Rationale | Impact of inaction or failure of the process |
|---|
| It is good practice to provide the tools to let the consumer
interact with the data (Except in the case of dark
archives). | |
2. Dependencies and relationships with other CPPs
Dependencies
| CPP-ID | CPP-Title | Relationship description |
|---|
| CPP-025 | Enabling Access | The access request is the trigger to invoke the rendering process
or start up the emulated environment. |
| CPP-010 | File Format Validation | In order to have a decent level of confidence in the rendering
process, the File’s format needs to be validated. |
| CPP-012 | Risk Mitigation | Risk Mitigation is in charge of defining the emulation and
rendering policy that is meant to be applied by this CPP. |
| CPP-022 | Significant Properties Definition | Rendering should be evaluated based on significant properties.
The faulty rendering of an Object because of unsuitable hardware
or software may go unnoticed and produce wrong interpretations
from the TDA’s community. |
Other relations
| Relation | CPP-ID | CPP-Title | Relationship description |
|---|
| Required by | CPP-013 | Object Management Reporting | The process of selecting tools for emulation and rendering
provides data to the TDA for reporting to the designated
communities. |
| Facilitated by | CPP-014 | File Migration | May be needed to support rendering tools in the long term. |
| Facilitated by | CPP-026 | File Normalisation | Normalisation of the file formats can reduce the effort and
complexity for rendering and emulation significantly. |
| Facilitated by | CPP-028 | Creation of Derivatives | Derivatives in formats and/or structures that are easier to render
can be created prior to the rendering process to avoid time and
resource consuming conversion processes. |
3. Links to frameworks
Certification
| Certification framework | Term used in framework to refer to the CPP | Section |
|---|
| CTS
Link
| Preservation Plan | R09 - Preservation Plan refers to emulation as a possible
preservation strategy |
| Nestor Seal
Link
| Emulation strategy | C24 Interpretability of the archival information |
| ISO 16363
Link
| / | In scope of 3.3.1 “The repository shall have defined its
Designated Community and associated knowledge base(s) and shall
have these definitions appropriately accessible.” |
Other frameworks and reference documents
| Reference Document | Term used in framework to refer to the process | Section |
|---|
| OAIS
Link
| Representation InformationRendering Software and Access Software | 4.3.2.3.3 Representation Information Networks |
| PREMIS
Link
| EmulationRender | Emulation is mentioned several times w.r.t. PreservationLevel and
Environment Objects. Rendering is mentioned in sections
discussing Representations, Relations and Environment objects.
Both processes are also described in the glossary. |
4. Reference implementations
Use cases
Rendering images with ICC profile embedded
| Institutional background |
|---|
| Institution | Bibliothèque nationale de France, FR |
| Description |
|---|
| Trigger event | In addition to its digital library, Gallica, BnF might provide
access to its digital images with embedded ICC profiles on its
public computer stations. |
| Problem statement | The diversity of born-digital images collected by BnF requires
rendering software aware of its complexity. The rendering tool
should be able to handle several file formats, different colour
models, and many other more or less common characteristics of
image Files: multi-image TIFFs, orientation indicated by an EXIF
tag, etc. In particular, it should use the embedded ICC profile
to enable proper colour management. |
| Proposed solution | BnF selected the XnView freeware as its solution for displaying
images to its Designated Community. Though the software was
natively supporting embedded ICC profiles, the setting was not
activated by default, which illustrates the importance of
adjusting the tool settings to ensure faithful rendering of
digital Objects. |
Publicly available documentation