Appearance
Chapter overview
NOTEBOOK 01

Virtual Acoustic Objects

You’re reading the fixed September 2026 · Cuntz worked examples edition.Current notebook ↗
RESEARCH / NOTEBOOK 01

Follow an asset across its carriers

A VAO release describes a research object. Its carriers distribute exact realizations of that object’s assets. Keeping those two levels separate supports small downloads without losing the identity of the whole.

One semantic release, several useful packages

The VAO 0.5.0 manifest is the semantic contract: it identifies assets, realizations, relationships and the relevant capabilities. A carrier is a particular package of bytes. A bootstrap carrier supplies discovery and evidence material; a preservation carrier supplies the preservation closure; a custom carrier can collect a selected dependency closure. These roles answer different access needs while referring to the same unchanged manifest.

An asset expresses a role in the research object, such as an exterior geometry or an audio recording. A realization identifies a particular encoded form with an exact byte size and SHA-256 digest. A distribution tells a resolver where to obtain it. Treating these as distinct avoids confusing a convenient URL, a low-resolution derivative and the scientific asset they serve.

Resolve an exact version before selecting material

Discovery can begin with a concept-level landing page or a search result, but reproducible acquisition needs an exact release. The Dynamic Delivery Profile connects external carriers through exact identifiers, including the version PID, record and file identities, carrier ID and descriptor digest where applicable. A resolver checks the actual carrier descriptor and obtains the member path from that descriptor. A filename or an HTTP ETag alone is not the realization identity.

  • Inspect the release identity and manifest before choosing assets. Record the exact version used.
  • Select realizations suitable for the task, then compute their required dependency and fallback closure. Dependency and fallback graphs must be acyclic.
  • Retrieve the identified carrier or member bytes. Verify expected size and digest before exposing a realization as acquired.
  • Retain an acquisition receipt that distinguishes attempted, failed and verified retrieval. An inaccessible file gets a diagnostic, not an invented successful byte identity.
Cuntz · Worked example#

What does the model’s SHA-256 prove?

A checksum is a fingerprint calculated from bytes. Fixity checking compares that fingerprint with a trusted expected value to detect changed or mismatched files.

Work through the example 3 STEPS

The published GLB source for this notebook has SHA-256 beginning 19527c2188b08d85. The display derivative has a different digest because its texture and encoding were changed.

  1. Compare like with like

    Check the complete source GLB digest against the exact source realization. Compare the website derivative against its own expected digest, not against the source GLB’s digest.

  2. Notice byte-changing edits

    A texture conversion or mesh encoding change produces a different file identity. Even reformatting a JSON manifest can change its exact-byte hash without changing its parsed meaning.

  3. Keep the scientific question separate

    Matching bytes establish which representation was obtained. The digest does not verify the model’s physical scale, the pipe measurement method or a claim about the sound of 1610.

BASIS FOR THIS EXAMPLE
  • Cuntz Positiv · VAO 0.5.0-rc.2 ↗

    Published manifest: identities, measurement observations, realization digests, profiles and rights. Exact examples checked against this release.

  • VAO Standard 0.5.0 ↗

    The standard contract is separate from the Cuntz dataset content version 0.5.0-rc.2.

This website verifies the model’s expected byte length and full SHA-256 before passing it to the renderer. That is a file-identity check, not a VAO conformance report.

The useful distinction. Fixity makes evidence identifiable; it does not independently validate the evidence’s interpretation.

A mobile selection, step by step

Imagine a release with a detailed geometry, a smaller geometry and several audio realizations. A mobile selection asks for a suitable subset and its dependencies; it does not redefine the historical instrument. If the selected geometry depends on a material or coordinate frame, that dependency remains part of the usable selection. If a requested profile needs an unavailable group, the client should report that the profile is not materialized instead of silently treating the partial download as complete.

VAO CLI 0.3.1 source workflow · replace the value with an exact VAO version DOI
# These commands are documented for source version 0.3.1.
# Check your installed version and command help before use.
VAO_DOI="<exact version DOI of your VAO object>"
vao resolve "$VAO_DOI" --exact
vao inspect "$VAO_DOI" --exact --assets --groups --archive
vao select "$VAO_DOI" --kind geometry --quality low --max-bytes 100MiB

The placeholder must identify a VAO research object, not the DOI of the standard itself. Selection is a planning step; inspect its result before a fetch or materialization. The archived CLI 0.2.0 is a separate release and must not be assumed to implement the 0.3.1 source workflow. A reproducible record includes the actual CLI version as well as the object version.

Cuntz · Worked example#

What does “dependency closure” mean for a model?

A dependency is something an item needs to work as declared. Closure means including everything required by the selected items, continuing until no required dependency is missing.

Work through the example 3 STEPS

Imagine a Cuntz display model delivered with a separate material texture. This is an illustrative delivery scenario; the notebook’s GLB instead embeds its texture.

  1. Select the model

    Begin with the geometry realization needed for the task. Selecting its name alone does not guarantee a complete visual representation.

  2. Follow every declared requirement

    If the model needs a texture, include it. If a playback task also requires a sample map and audio files, follow those requirements too. Do not confuse optional enhancements with mandatory dependencies.

  3. Verify the complete selection

    Only after the required bytes are acquired and verified can the selected capability be described as materialized. Record missing resources as missing rather than silently substituting unrelated files.

BASIS FOR THIS EXAMPLE
  • Cuntz Positiv · VAO 0.5.0-rc.2 ↗

    Published manifest: identities, measurement observations, realization digests, profiles and rights. Exact examples checked against this release.

  • VAO Standard 0.5.0 ↗

    The standard contract is separate from the Cuntz dataset content version 0.5.0-rc.2.

This example explains the selection rule; it does not assert that the published Cuntz GLB uses an external texture or that the web viewer executes a complete VAO.

The useful distinction. Closure is the complete set of prerequisites for a chosen task, not necessarily the entire archive.

When a smaller package is still the same release

A custom carrier can retain the original manifest bytes and package selected verified realizations under a new carrier identity. That changes delivery without changing the semantic release. Transcoding an audio file or simplifying a geometry is different: the result has new bytes and must be represented as a new realization with its derivation. Renaming a file does not make a derived object scientifically equivalent to its source.

The outer archive digest belongs in an external release descriptor rather than inside the archive it hashes. Otherwise the package would require a circular self-hash. VAO also distinguishes hashing the exact manifest bytes from canonicalizing other specified records. Reserializing equivalent JSON can change a byte digest; a verifier must use the hashing procedure defined for the particular artifact.

Sources & further reading

  1. VAO Standard 0.5.0

    Normative standard, profile index, Dynamic Delivery Profile and conformance specification in the versioned release.

  2. VAO CLI · source README, version 0.3.1

    Source documentation inspected on 26 September 2026. This source version was pending release; the separately linked 0.2.0 archive must not be assumed to provide all of these commands or VAO 0.5 behavior.

  3. VAO CLI 0.2.0 archive

    Archived release identity, distinct from the later source documentation used for the command example.

Page editions 2026-09-r5 ↓

Read a fixed snapshot of this chapter, or return to the current notebook.

Edition 2026-09-r5 · SHA-256 3e50d57f698cPage metadata ↗