{
  "title": "Working with the standard — Virtual Acoustic Objects",
  "text": "MODAVIS (2026). Working with the standard — Virtual Acoustic Objects. Research notebooks, September 2026 · research guides edition. https://modavis.org/editions/2026-09-r4/vao/implementation/",
  "bibtex": "@misc{modavis_vao_implementation_2026_09_r4,\n  author = {{MODAVIS}},\n  title = {Working with the standard — Virtual Acoustic Objects},\n  year = {2026},\n  month = {09},\n  version = {2026-09-r4},\n  url = {https://modavis.org/editions/2026-09-r4/vao/implementation/},\n  note = {Content SHA-256: b99e3adec2e0e87e9d0a461f06ab148b5480e15803e99c91de6209389abdd957}\n}",
  "url": "https://modavis.org/editions/2026-09-r4/vao/implementation/",
  "sha256": "b99e3adec2e0e87e9d0a461f06ab148b5480e15803e99c91de6209389abdd957",
  "edition": "2026-09-r4",
  "date": "2026-09-26",
  "canonicalPayload": "{\"book\":{\"number\":\"01\",\"slug\":\"vao\",\"title\":\"Virtual Acoustic Objects\"},\"chapter\":{\"blocks\":[{\"items\":[\"Read the final 0.5.0 specification and the profiles relevant to your object.\",\"Keep original measurements and source evidence separate from derived representations.\",\"Record rights for each resource; a package does not erase third-party restrictions.\",\"Validate the workspace and release bindings before packing a carrier.\",\"Verify the carrier and publish it with its version identifier and checksums.\"],\"type\":\"list\"},{\"id\":\"validation\",\"text\":\"Reference validation\",\"type\":\"heading\"},{\"label\":\"From the VAO 0.5.0 source checkout\",\"text\":\"python Tools/vao05.py validate path/to/workspace\\npython Tools/vao05.py pack path/to/workspace output.vao\",\"type\":\"code\"},{\"text\":\"The release includes schemas, conformance fixtures, reference tools and migration guidance. Use the environment and installation instructions distributed with that release rather than assuming that an unrelated tool version implements the same contract.\",\"type\":\"p\"},{\"text\":\"Conformance checks structure, semantics, declared profiles and file integrity. It does not certify the scientific truth of a measurement, attribution or interpretation.\",\"title\":\"What validation establishes\",\"type\":\"note\"},{\"id\":\"implementation-decisions\",\"text\":\"Decide the contract before building the viewer\",\"type\":\"heading\"},{\"headers\":[\"Decision\",\"Why it matters\"],\"rows\":[[\"Object and historical state\",\"Determines which subjects the resources and claims refer to.\"],[\"Profiles and required capabilities\",\"Determines the responsibilities a conforming implementation must satisfy.\"],[\"Exact realizations and provenance\",\"Distinguishes captured material from conversions, derivations and simulations.\"],[\"Delivery and dependencies\",\"Determines which groups must be present before an experience can run.\"]],\"type\":\"table\"},{\"text\":\"For final VAO 0.5.0, Core and Dynamic Delivery are mandatory. Additional profiles express further requirements; they are not decorative labels. An implementation that can display metadata but cannot satisfy a required playback capability should report that limitation. It may still provide useful lower-level inspection without claiming full support for the playable profile.\",\"type\":\"p\"},{\"id\":\"validation-levels\",\"text\":\"Validate at more than one level\",\"type\":\"heading\"},{\"text\":\"Start with a workspace whose manifest and resource paths can be inspected locally. Check the manifest’s references and declared profiles, then verify the exact payload realizations. After packaging, check the carrier mapping and release bindings as well. A structurally valid manifest does not establish that a published carrier contains the bytes it promises.\",\"type\":\"p\"},{\"text\":\"Keep a small fixture with a known result for each capability you implement. Include an unsupported-profile case and an intentionally altered payload: these should produce clear limitations or validation failures, not silent substitution. Record the validator version with the result. This is practical implementation guidance; the versioned conformance specification remains the authority for required tests.\",\"type\":\"p\"},{\"text\":\"The VAO CLI, Unity importer, Blender extension and OrgRec have independent release histories. Consult the client comparison before assuming that an archived client accepts every final 0.5 package.\",\"title\":\"Choose a client by its supported contract\",\"type\":\"note\"},{\"items\":[{\"href\":\"/notebooks/software/clients/\",\"label\":\"Compare the VAO implementations\"}],\"type\":\"links\"},{\"items\":[{\"detail\":\"The versioned specification and reference tools.\",\"href\":\"https://doi.org/10.5281/zenodo.22214248\",\"label\":\"VAO Standard 0.5.0\"},{\"href\":\"https://w3id.org/modavis/vao/0.5.0/\",\"label\":\"VAO persistent entry point\"}],\"type\":\"links\"},{\"id\":\"implementation-sequence\",\"text\":\"A practical implementation sequence\",\"type\":\"heading\"},{\"items\":[\"Start from a pinned standard release and its minimal fixture. Confirm strict parsing and schema validation before adding capabilities.\",\"Add typed references and semantic checks, then implement the profiles needed by your use case. Keep unimplemented checks visible.\",\"Verify carrier descriptors and realization bytes before materializing resources. Preserve failure diagnostics and acquisition receipts.\",\"Test the claimed operation in the intended client. Metadata inspection, geometry import and runtime execution need different evidence.\"],\"type\":\"list\"},{\"items\":[{\"detail\":\"Reference commands and the meaning of each validation layer.\",\"href\":\"/notebooks/standards/conformance/\",\"label\":\"Layered validation guide\"},{\"detail\":\"Match standard version, application release and operation.\",\"href\":\"/notebooks/software/clients/\",\"label\":\"Client comparison\"}],\"type\":\"links\"}],\"intro\":\"Start with a pinned release, declare the capabilities you provide, and preserve exact file identities.\",\"slug\":\"implementation\",\"sources\":[{\"detail\":\"The versioned specification and reference tools.\",\"href\":\"https://doi.org/10.5281/zenodo.22214248\",\"label\":\"VAO Standard 0.5.0\"},{\"detail\":\"Normative standard, profile index, Dynamic Delivery Profile and conformance specification in the versioned release.\",\"href\":\"https://doi.org/10.5281/zenodo.22214248\",\"label\":\"VAO Standard 0.5.0\"}],\"title\":\"Working with the standard\"},\"date\":\"2026-09-26\",\"edition\":\"2026-09-r4\",\"figures\":{}}",
  "payload": {
    "edition": "2026-09-r4",
    "date": "2026-09-26",
    "book": {
      "slug": "vao",
      "title": "Virtual Acoustic Objects",
      "number": "01"
    },
    "chapter": {
      "slug": "implementation",
      "title": "Working with the standard",
      "intro": "Start with a pinned release, declare the capabilities you provide, and preserve exact file identities.",
      "blocks": [
        {
          "type": "list",
          "items": [
            "Read the final 0.5.0 specification and the profiles relevant to your object.",
            "Keep original measurements and source evidence separate from derived representations.",
            "Record rights for each resource; a package does not erase third-party restrictions.",
            "Validate the workspace and release bindings before packing a carrier.",
            "Verify the carrier and publish it with its version identifier and checksums."
          ]
        },
        {
          "type": "heading",
          "text": "Reference validation",
          "id": "validation"
        },
        {
          "type": "code",
          "label": "From the VAO 0.5.0 source checkout",
          "text": "python Tools/vao05.py validate path/to/workspace\npython Tools/vao05.py pack path/to/workspace output.vao"
        },
        {
          "type": "p",
          "text": "The release includes schemas, conformance fixtures, reference tools and migration guidance. Use the environment and installation instructions distributed with that release rather than assuming that an unrelated tool version implements the same contract."
        },
        {
          "type": "note",
          "title": "What validation establishes",
          "text": "Conformance checks structure, semantics, declared profiles and file integrity. It does not certify the scientific truth of a measurement, attribution or interpretation."
        },
        {
          "type": "heading",
          "text": "Decide the contract before building the viewer",
          "id": "implementation-decisions"
        },
        {
          "type": "table",
          "headers": [
            "Decision",
            "Why it matters"
          ],
          "rows": [
            [
              "Object and historical state",
              "Determines which subjects the resources and claims refer to."
            ],
            [
              "Profiles and required capabilities",
              "Determines the responsibilities a conforming implementation must satisfy."
            ],
            [
              "Exact realizations and provenance",
              "Distinguishes captured material from conversions, derivations and simulations."
            ],
            [
              "Delivery and dependencies",
              "Determines which groups must be present before an experience can run."
            ]
          ]
        },
        {
          "type": "p",
          "text": "For final VAO 0.5.0, Core and Dynamic Delivery are mandatory. Additional profiles express further requirements; they are not decorative labels. An implementation that can display metadata but cannot satisfy a required playback capability should report that limitation. It may still provide useful lower-level inspection without claiming full support for the playable profile."
        },
        {
          "type": "heading",
          "text": "Validate at more than one level",
          "id": "validation-levels"
        },
        {
          "type": "p",
          "text": "Start with a workspace whose manifest and resource paths can be inspected locally. Check the manifest’s references and declared profiles, then verify the exact payload realizations. After packaging, check the carrier mapping and release bindings as well. A structurally valid manifest does not establish that a published carrier contains the bytes it promises."
        },
        {
          "type": "p",
          "text": "Keep a small fixture with a known result for each capability you implement. Include an unsupported-profile case and an intentionally altered payload: these should produce clear limitations or validation failures, not silent substitution. Record the validator version with the result. This is practical implementation guidance; the versioned conformance specification remains the authority for required tests."
        },
        {
          "type": "note",
          "title": "Choose a client by its supported contract",
          "text": "The VAO CLI, Unity importer, Blender extension and OrgRec have independent release histories. Consult the client comparison before assuming that an archived client accepts every final 0.5 package."
        },
        {
          "type": "links",
          "items": [
            {
              "label": "Compare the VAO implementations",
              "href": "/notebooks/software/clients/"
            }
          ]
        },
        {
          "type": "links",
          "items": [
            {
              "label": "VAO Standard 0.5.0",
              "href": "https://doi.org/10.5281/zenodo.22214248",
              "detail": "The versioned specification and reference tools."
            },
            {
              "label": "VAO persistent entry point",
              "href": "https://w3id.org/modavis/vao/0.5.0/"
            }
          ]
        },
        {
          "type": "heading",
          "id": "implementation-sequence",
          "text": "A practical implementation sequence"
        },
        {
          "type": "list",
          "items": [
            "Start from a pinned standard release and its minimal fixture. Confirm strict parsing and schema validation before adding capabilities.",
            "Add typed references and semantic checks, then implement the profiles needed by your use case. Keep unimplemented checks visible.",
            "Verify carrier descriptors and realization bytes before materializing resources. Preserve failure diagnostics and acquisition receipts.",
            "Test the claimed operation in the intended client. Metadata inspection, geometry import and runtime execution need different evidence."
          ]
        },
        {
          "type": "links",
          "items": [
            {
              "label": "Layered validation guide",
              "href": "/notebooks/standards/conformance/",
              "detail": "Reference commands and the meaning of each validation layer."
            },
            {
              "label": "Client comparison",
              "href": "/notebooks/software/clients/",
              "detail": "Match standard version, application release and operation."
            }
          ]
        }
      ],
      "sources": [
        {
          "label": "VAO Standard 0.5.0",
          "href": "https://doi.org/10.5281/zenodo.22214248",
          "detail": "The versioned specification and reference tools."
        },
        {
          "label": "VAO Standard 0.5.0",
          "href": "https://doi.org/10.5281/zenodo.22214248",
          "detail": "Normative standard, profile index, Dynamic Delivery Profile and conformance specification in the versioned release."
        }
      ]
    },
    "figures": {}
  }
}