Emulation and Rendering Tools (CPP-015)

CPP-IdentifierCPP-015
CPP-LabelEmulation and Rendering Tools
AuthorKris Dekeyser
ContributorsBertrand Caron, Johan Kylander
EvaluatorsFelix Burger, Maria Benauer
Change historyComments
Version 1.0.0 - 2025-08-29Milestone version
Version 1.1.0 - 2026-04-10Migration to XML
Version 1.2.0 - 2026-05-18Reassigned 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
Representation
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 EventCPP-identifier
Access requested to a given ObjectCPP-025 (Enabling Access)

Step-by-step description

NoSupplierInputStepsOutputCustomer
 sequence
1 sequence - Initial strategy selection
1.1CPP-025 (Enabling Access)Representation identifierCollect 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 strategyEmulation (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.1Environment ObjectRetrieve 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.2Emulation informationPrepare Emulation environment:
  • initialise the virtual machine based on operating system requirement
  • install the software requirements
Initialised emulated environment
2.a.3Emulated environmentInject or copy the Representation content in the emulated environmentComplete emulated environment
Representation information
2.a.4Complete emulated environmentStart the emulated environment and redirect input and output to the consumer
2.b sequence - Rendering
2.b.1CPP-025 (Enabling Access)Representation identifierGet the Object's representation Representation Technical metadata
2.b.2 Representation Technical metadata Retrieve the Representation contentRepresentation content
2.b.3Representation InformationMake a choice of rendering toolRendering tool
CPP-012 (Risk Mitigation)
CPP-018 (Community Watch)
Emulation and rendering policy
2.b.4Representation contentExecute the Rendering tool and hand over the Representation content
Rendering tool

Rationale(s) and worst case(s)

RationaleImpact 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-IDCPP-TitleRelationship description
CPP-025Enabling AccessThe access request is the trigger to invoke the rendering process or start up the emulated environment.
CPP-010File Format ValidationIn order to have a decent level of confidence in the rendering process, the File’s format needs to be validated.
CPP-012Risk MitigationRisk Mitigation is in charge of defining the emulation and rendering policy that is meant to be applied by this CPP.
CPP-022Significant Properties DefinitionRendering 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

RelationCPP-IDCPP-TitleRelationship description
Required byCPP-013Object Management ReportingThe process of selecting tools for emulation and rendering provides data to the TDA for reporting to the designated communities.
Facilitated byCPP-014File MigrationMay be needed to support rendering tools in the long term.
Facilitated byCPP-026File NormalisationNormalisation of the file formats can reduce the effort and complexity for rendering and emulation significantly.
Facilitated byCPP-028Creation of DerivativesDerivatives 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.

4. Reference implementations

Use cases

Rendering images with ICC profile embedded

Institutional background
InstitutionBibliothèque nationale de France, FR
Description
Trigger eventIn addition to its digital library, Gallica, BnF might provide access to its digital images with embedded ICC profiles on its public computer stations.
Problem statementThe 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 solutionBnF 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

InstitutionOrganisation typeLanguageHyperlink
TIB – Leibniz Information Centre for Science and Technology and University Library, DENational library
Non-commercial digital preservation service
Research infrastructure
Research performing organisation
Englishhttps://wiki.tib.eu/confluence/spaces/lza/pages/93608641/Preservation+Management#PreservationManagement-Emulation
CSC – IT Center for Science Ltd., FINon-commercial digital preservation serviceEnglishhttps://urn.fi/urn:nbn:fi-fe2025040925236
(section 8)