{
  "title": "Choose a VAO client — Tools & experiences",
  "text": "MODAVIS (2026). Choose a VAO client — Tools & experiences. Research notebooks, September 2026 · Cuntz worked examples edition. https://modavis.org/editions/2026-09-r5/software/clients/",
  "bibtex": "@misc{modavis_software_clients_2026_09_r5,\n  author = {{MODAVIS}},\n  title = {Choose a VAO client — Tools & experiences},\n  year = {2026},\n  month = {09},\n  version = {2026-09-r5},\n  url = {https://modavis.org/editions/2026-09-r5/software/clients/},\n  note = {Content SHA-256: 581dbc61c071cca1afe2b0aac3e6a989de9e14e530d46e6f85ef804bfcb19a27}\n}",
  "url": "https://modavis.org/editions/2026-09-r5/software/clients/",
  "sha256": "581dbc61c071cca1afe2b0aac3e6a989de9e14e530d46e6f85ef804bfcb19a27",
  "edition": "2026-09-r5",
  "date": "2026-09-26",
  "canonicalPayload": "{\"book\":{\"number\":\"06\",\"slug\":\"software\",\"title\":\"Tools & experiences\"},\"chapter\":{\"blocks\":[{\"text\":\"“Supports VAO” is only the beginning of a compatibility statement. A client can support a particular contract, offer only selected capabilities, or be designed for a specific runtime. The exchange standard and the application release use independent version numbers. The comparison below records the documented states audited for this notebook edition.\",\"type\":\"p\"},{\"id\":\"client-tasks\",\"text\":\"Choose by the operation you need\",\"type\":\"heading\"},{\"headers\":[\"Implementation\",\"Primary use\",\"Recorded version boundary\"],\"rows\":[[\"VAO CLI\",\"DOI resolution, package inspection, bounded retrieval and local materialization.\",\"Archived 0.2.0 targets VAO 0.4; development 0.3.1 supports final 0.4 and 0.5.\"],[\"VAO Importer for Unity\",\"Import into Unity for supported media, control, MIDI and XR workflows.\",\"Archive: 0.6.0-rc.1. Development 0.6.0-rc.4 documents final 0.4 and a pinned 0.5 candidate.\"],[\"VAO Blender\",\"Package validation, inspection and verified embedded GLB materialization.\",\"Published 0.4.0-rc.2 documents final 0.4 and a pinned 0.5 candidate; fuller interaction is a legacy 0.2.2 path.\"],[\"OrgRec\",\"A recording and analysis workflow with VAO export.\",\"Published 0.3.2 provides VAO 0.5 export; consult its own import and export documentation.\"],[\"vaoXR\",\"Browser-based inspection and supported interactive experiences.\",\"Published 0.1.0 is independently versioned; capabilities depend on the package and browser.\"]],\"type\":\"table\"},{\"id\":\"inspect-before-playback\",\"text\":\"Inspect before attempting playback\",\"type\":\"heading\"},{\"items\":[\"Identify the exact object release and the format contract declared in its manifest.\",\"Check the client’s own version and supported profiles; distinguish final specifications from pinned candidates.\",\"Establish which resource groups must be available for the intended operation.\",\"Verify the required realizations before interpreting an image, model or audio result.\",\"Retain unsupported-capability messages with the report of what was actually tested.\"],\"type\":\"list\"},{\"text\":\"A client can be useful even when it cannot execute an entire experience. Metadata inspection, file-integrity checking and geometry import are meaningful operations with narrower requirements than sampled playback or XR. The interface should explain the level of support rather than implying that a successful import validates every aspect of the package.\",\"type\":\"p\"},{\"boundary\":\"No acoustics profile or calibrated acoustic response is inferred from the presence of an organ model.\",\"concept\":\"A profile names a set of requirements for a capability. A client’s support describes what an application can do with the object; the two declarations must be compared.\",\"expanded\":false,\"id\":\"cuntz-profiles\",\"scenario\":\"The Cuntz manifest declares Core, Dynamic Delivery, Playable, Physical Instrument, Scientific, Multimodal, Spatial and Zenodo Repository profiles under VAO 0.5.0.\",\"sources\":[{\"detail\":\"Published manifest: identities, measurement observations, realization digests, profiles and rights. Exact examples checked against this release.\",\"href\":\"https://doi.org/10.5281/zenodo.22151203\",\"label\":\"Cuntz Positiv · VAO 0.5.0-rc.2\"},{\"detail\":\"The standard contract is separate from the Cuntz dataset content version 0.5.0-rc.2.\",\"href\":\"https://doi.org/10.5281/zenodo.22214248\",\"label\":\"VAO Standard 0.5.0\"}],\"steps\":[{\"text\":\"The object contains information for several uses, including physical topology, scientific observations and sampled interaction. These requirements describe the package contract.\",\"title\":\"Read the object’s declarations\"},{\"text\":\"The notebook loads a GLB display derivative and provides camera controls. It does not import the full VAO manifest, evaluate its scientific records or execute its keyboard and stop behavior.\",\"title\":\"State the viewer’s operation\"},{\"text\":\"To test sampled playback or synchronized controls, choose a client whose documented version supports the relevant format, profiles and resources. Record the tested operation separately from successful visual loading.\",\"title\":\"Choose another client when the task changes\"}],\"takeaway\":\"A working 3D preview proves that the chosen model can be displayed; it does not establish complete VAO conformance or playability.\",\"title\":\"Does showing the organ in 3D mean the VAO is playable?\",\"type\":\"example\"},{\"id\":\"compatibility-note\",\"text\":\"A practical compatibility note\",\"type\":\"heading\"},{\"label\":\"Illustrative record for an interchange test\",\"text\":\"Object release and version DOI:\\nVAO format version:\\nClient name, version and platform:\\nOperation tested:\\nRequired profiles and resource groups:\\nValidation result:\\nUnsupported capabilities or substitutions:\\nOutput artifacts and checksums:\",\"type\":\"code\"},{\"text\":\"Keep the source package unchanged when testing interchange. A newly materialized carrier or derived project is a separate artifact, even when it refers to the same semantic release. If a runtime needs a conversion, document that conversion and preserve a route back to the exact input.\",\"type\":\"p\"},{\"items\":[{\"href\":\"https://doi.org/10.5281/zenodo.22133810\",\"label\":\"VAO CLI 0.2.0 archive\"},{\"href\":\"https://doi.org/10.5281/zenodo.22134391\",\"label\":\"Unity importer 0.6.0-rc.1 archive\"},{\"href\":\"https://doi.org/10.5281/zenodo.22210517\",\"label\":\"Blender 0.4.0-rc.2 archive\"}],\"type\":\"links\"},{\"id\":\"materialization-and-execution\",\"text\":\"A loaded package is not necessarily an executed object\",\"type\":\"heading\"},{\"text\":\"The Unity source documentation distinguishes MetadataOnly, SelectedGroups and RuntimeRequired materialization. Those modes describe different local resource states, while the runtime’s supported behavior adds another layer. Preserve unsupported data for inspection where the client provides that capability, and record which operation was actually performed. Features documented in the later source candidate must not be attributed wholesale to the archived 0.6.0-rc.1 release.\",\"type\":\"p\"},{\"text\":\"For Blender 0.4.0-rc.2, the modern VAO path supports validation, inspection and verified visual materialization. It does not provide modern VAO runtime execution, impulse-response convolution or acoustic simulation. Legacy interaction support belongs to a different format path. This makes Blender useful for checking geometry without presenting it as a complete acoustic player.\",\"type\":\"p\"},{\"items\":[{\"detail\":\"Determine which bytes and dependencies the application needs.\",\"href\":\"/notebooks/vao/delivery/\",\"label\":\"Delivery and selection\"},{\"detail\":\"Report the exact scope of the interchange test.\",\"href\":\"/notebooks/standards/conformance/\",\"label\":\"Conformance layers\"}],\"type\":\"links\"}],\"intro\":\"Match the task, implementation version and declared package capabilities before moving an object between environments.\",\"slug\":\"clients\",\"sources\":[{\"href\":\"https://doi.org/10.5281/zenodo.22214248\",\"label\":\"VAO Standard 0.5.0\"},{\"href\":\"https://doi.org/10.5281/zenodo.22133810\",\"label\":\"VAO CLI archive\"},{\"href\":\"https://doi.org/10.5281/zenodo.22134391\",\"label\":\"Unity importer archive\"},{\"href\":\"https://doi.org/10.5281/zenodo.22210517\",\"label\":\"VAO Blender archive\"},{\"href\":\"https://doi.org/10.5281/zenodo.22698744\",\"label\":\"OrgRec 0.3.2\"},{\"detail\":\"Inspected 26 September 2026. Unity source 0.6.0-rc.4 is a pending candidate, distinct from archive 0.6.0-rc.1; Blender capabilities are bounded to published 0.4.0-rc.2 and its documented legacy path.\",\"label\":\"VAO Unity and VAO Blender · source READMEs\"}],\"title\":\"Choose a VAO client\"},\"date\":\"2026-09-26\",\"edition\":\"2026-09-r5\",\"figures\":{}}",
  "payload": {
    "edition": "2026-09-r5",
    "date": "2026-09-26",
    "book": {
      "slug": "software",
      "title": "Tools & experiences",
      "number": "06"
    },
    "chapter": {
      "slug": "clients",
      "title": "Choose a VAO client",
      "intro": "Match the task, implementation version and declared package capabilities before moving an object between environments.",
      "blocks": [
        {
          "type": "p",
          "text": "“Supports VAO” is only the beginning of a compatibility statement. A client can support a particular contract, offer only selected capabilities, or be designed for a specific runtime. The exchange standard and the application release use independent version numbers. The comparison below records the documented states audited for this notebook edition."
        },
        {
          "type": "heading",
          "text": "Choose by the operation you need",
          "id": "client-tasks"
        },
        {
          "type": "table",
          "headers": [
            "Implementation",
            "Primary use",
            "Recorded version boundary"
          ],
          "rows": [
            [
              "VAO CLI",
              "DOI resolution, package inspection, bounded retrieval and local materialization.",
              "Archived 0.2.0 targets VAO 0.4; development 0.3.1 supports final 0.4 and 0.5."
            ],
            [
              "VAO Importer for Unity",
              "Import into Unity for supported media, control, MIDI and XR workflows.",
              "Archive: 0.6.0-rc.1. Development 0.6.0-rc.4 documents final 0.4 and a pinned 0.5 candidate."
            ],
            [
              "VAO Blender",
              "Package validation, inspection and verified embedded GLB materialization.",
              "Published 0.4.0-rc.2 documents final 0.4 and a pinned 0.5 candidate; fuller interaction is a legacy 0.2.2 path."
            ],
            [
              "OrgRec",
              "A recording and analysis workflow with VAO export.",
              "Published 0.3.2 provides VAO 0.5 export; consult its own import and export documentation."
            ],
            [
              "vaoXR",
              "Browser-based inspection and supported interactive experiences.",
              "Published 0.1.0 is independently versioned; capabilities depend on the package and browser."
            ]
          ]
        },
        {
          "type": "heading",
          "text": "Inspect before attempting playback",
          "id": "inspect-before-playback"
        },
        {
          "type": "list",
          "items": [
            "Identify the exact object release and the format contract declared in its manifest.",
            "Check the client’s own version and supported profiles; distinguish final specifications from pinned candidates.",
            "Establish which resource groups must be available for the intended operation.",
            "Verify the required realizations before interpreting an image, model or audio result.",
            "Retain unsupported-capability messages with the report of what was actually tested."
          ]
        },
        {
          "type": "p",
          "text": "A client can be useful even when it cannot execute an entire experience. Metadata inspection, file-integrity checking and geometry import are meaningful operations with narrower requirements than sampled playback or XR. The interface should explain the level of support rather than implying that a successful import validates every aspect of the package."
        },
        {
          "type": "example",
          "id": "cuntz-profiles",
          "title": "Does showing the organ in 3D mean the VAO is playable?",
          "concept": "A profile names a set of requirements for a capability. A client’s support describes what an application can do with the object; the two declarations must be compared.",
          "scenario": "The Cuntz manifest declares Core, Dynamic Delivery, Playable, Physical Instrument, Scientific, Multimodal, Spatial and Zenodo Repository profiles under VAO 0.5.0.",
          "steps": [
            {
              "title": "Read the object’s declarations",
              "text": "The object contains information for several uses, including physical topology, scientific observations and sampled interaction. These requirements describe the package contract."
            },
            {
              "title": "State the viewer’s operation",
              "text": "The notebook loads a GLB display derivative and provides camera controls. It does not import the full VAO manifest, evaluate its scientific records or execute its keyboard and stop behavior."
            },
            {
              "title": "Choose another client when the task changes",
              "text": "To test sampled playback or synchronized controls, choose a client whose documented version supports the relevant format, profiles and resources. Record the tested operation separately from successful visual loading."
            }
          ],
          "takeaway": "A working 3D preview proves that the chosen model can be displayed; it does not establish complete VAO conformance or playability.",
          "boundary": "No acoustics profile or calibrated acoustic response is inferred from the presence of an organ model.",
          "sources": [
            {
              "label": "Cuntz Positiv · VAO 0.5.0-rc.2",
              "href": "https://doi.org/10.5281/zenodo.22151203",
              "detail": "Published manifest: identities, measurement observations, realization digests, profiles and rights. Exact examples checked against this release."
            },
            {
              "label": "VAO Standard 0.5.0",
              "href": "https://doi.org/10.5281/zenodo.22214248",
              "detail": "The standard contract is separate from the Cuntz dataset content version 0.5.0-rc.2."
            }
          ],
          "expanded": false
        },
        {
          "type": "heading",
          "text": "A practical compatibility note",
          "id": "compatibility-note"
        },
        {
          "type": "code",
          "label": "Illustrative record for an interchange test",
          "text": "Object release and version DOI:\nVAO format version:\nClient name, version and platform:\nOperation tested:\nRequired profiles and resource groups:\nValidation result:\nUnsupported capabilities or substitutions:\nOutput artifacts and checksums:"
        },
        {
          "type": "p",
          "text": "Keep the source package unchanged when testing interchange. A newly materialized carrier or derived project is a separate artifact, even when it refers to the same semantic release. If a runtime needs a conversion, document that conversion and preserve a route back to the exact input."
        },
        {
          "type": "links",
          "items": [
            {
              "label": "VAO CLI 0.2.0 archive",
              "href": "https://doi.org/10.5281/zenodo.22133810"
            },
            {
              "label": "Unity importer 0.6.0-rc.1 archive",
              "href": "https://doi.org/10.5281/zenodo.22134391"
            },
            {
              "label": "Blender 0.4.0-rc.2 archive",
              "href": "https://doi.org/10.5281/zenodo.22210517"
            }
          ]
        },
        {
          "type": "heading",
          "id": "materialization-and-execution",
          "text": "A loaded package is not necessarily an executed object"
        },
        {
          "type": "p",
          "text": "The Unity source documentation distinguishes MetadataOnly, SelectedGroups and RuntimeRequired materialization. Those modes describe different local resource states, while the runtime’s supported behavior adds another layer. Preserve unsupported data for inspection where the client provides that capability, and record which operation was actually performed. Features documented in the later source candidate must not be attributed wholesale to the archived 0.6.0-rc.1 release."
        },
        {
          "type": "p",
          "text": "For Blender 0.4.0-rc.2, the modern VAO path supports validation, inspection and verified visual materialization. It does not provide modern VAO runtime execution, impulse-response convolution or acoustic simulation. Legacy interaction support belongs to a different format path. This makes Blender useful for checking geometry without presenting it as a complete acoustic player."
        },
        {
          "type": "links",
          "items": [
            {
              "label": "Delivery and selection",
              "href": "/notebooks/vao/delivery/",
              "detail": "Determine which bytes and dependencies the application needs."
            },
            {
              "label": "Conformance layers",
              "href": "/notebooks/standards/conformance/",
              "detail": "Report the exact scope of the interchange test."
            }
          ]
        }
      ],
      "sources": [
        {
          "label": "VAO Standard 0.5.0",
          "href": "https://doi.org/10.5281/zenodo.22214248"
        },
        {
          "label": "VAO CLI archive",
          "href": "https://doi.org/10.5281/zenodo.22133810"
        },
        {
          "label": "Unity importer archive",
          "href": "https://doi.org/10.5281/zenodo.22134391"
        },
        {
          "label": "VAO Blender archive",
          "href": "https://doi.org/10.5281/zenodo.22210517"
        },
        {
          "label": "OrgRec 0.3.2",
          "href": "https://doi.org/10.5281/zenodo.22698744"
        },
        {
          "label": "VAO Unity and VAO Blender · source READMEs",
          "detail": "Inspected 26 September 2026. Unity source 0.6.0-rc.4 is a pending candidate, distinct from archive 0.6.0-rc.1; Blender capabilities are bounded to published 0.4.0-rc.2 and its documented legacy path."
        }
      ]
    },
    "figures": {}
  }
}