From 8cdca9945bdceb951c5ecd8e4bd9b6cb43863f9e Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Wed, 25 Mar 2026 15:13:21 +0000 Subject: [PATCH 1/7] Adding v4 validator --- .github/workflows/valiadte.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/valiadte.yml diff --git a/.github/workflows/valiadte.yml b/.github/workflows/valiadte.yml new file mode 100644 index 0000000..71e5e7d --- /dev/null +++ b/.github/workflows/valiadte.yml @@ -0,0 +1,23 @@ +name: validate + +on: + pull_request: + workflow_dispatch: + +jobs: + validate: + runs-on: ubuntu-latest + env: + BUNDLE_WITH: test jekyll_plugins + SITE_ID: 'cookbook' # which iiif site this is + URL: 'https://preview.iiif.io' + + steps: + - name: Check out this repository + uses: actions/checkout@v5 + + - name: Run IIIF validator + uses: IIIF/presentation-validator@v4 + with: + directory: manifests + version: "4.0" From c365eaa0d28389f93c3a1cb9968d7c2467510232 Mon Sep 17 00:00:00 2001 From: Glen Robson Date: Wed, 13 May 2026 17:41:21 +0100 Subject: [PATCH 2/7] Updating version --- .github/workflows/valiadte.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/valiadte.yml b/.github/workflows/valiadte.yml index 71e5e7d..d947320 100644 --- a/.github/workflows/valiadte.yml +++ b/.github/workflows/valiadte.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v5 - name: Run IIIF validator - uses: IIIF/presentation-validator@v4 + uses: IIIF/presentation-validator@main with: directory: manifests version: "4.0" From 5285f6d3edc0241862ccc2a6eb000f48b8973900 Mon Sep 17 00:00:00 2001 From: Julie Winchester Date: Wed, 20 May 2026 12:09:52 -0500 Subject: [PATCH 3/7] Iterative manifest updates by Claude using validator --- .../astronaut_comment_scope.json | 311 +++++++++-------- .../whale_comment_scope_content_state.json | 322 +++++++++--------- ...tronaut_comment_activating_motivation.json | 205 +++++------ manifests/2_cameras/perspective_camera.json | 10 +- .../positioned_camera_lookat_anno.json | 17 +- .../positioned_camera_lookat_point.json | 17 +- manifests/2_cameras/zz_choice_of_cameras.json | 84 ++--- .../2_cameras/zz_orthographic_camera.json | 119 +++---- manifests/3_lights/ambient_green_light.json | 12 +- .../direction_light_lookat_positioned.json | 21 +- .../direction_light_transform_rotate.json | 21 +- ...le_lights_with_intensities_and_colors.json | 102 +++--- .../model_position.json | 11 +- ...del_transform_negative_scale_position.json | 35 +- .../model_transform_rotate_position.json | 24 +- ...l_transform_rotate_translate_position.json | 24 +- .../model_transform_scale_position.json | 35 +- ...el_transform_scale_translate_position.json | 35 +- ...l_transform_translate_rotate_position.json | 24 +- ...el_transform_translate_scale_position.json | 35 +- .../tipped_and_rotated_astronaut.json | 58 ++-- .../tipped_astronaut.json | 33 +- .../whale_cranium_and_mandible_position.json | 22 +- .../iiif_canvas_with_bgcolor_backward.json | 13 +- .../iiif_canvas_with_bgcolor_forward.json | 13 +- .../astronaut_comment.json | 37 +- .../astronaut_multilingual_comment.json | 139 ++++---- .../whale_comment.json | 40 +-- .../whale_comment_camera.json | 68 ++-- .../whale_comment_label_body_position.json | 94 +++-- ...le_comment_label_body_position_rotate.json | 106 +++--- .../whale_comment_point_polygon.json | 114 +++---- 32 files changed, 1085 insertions(+), 1116 deletions(-) diff --git a/manifests/10_content_state/astronaut_comment_scope.json b/manifests/10_content_state/astronaut_comment_scope.json index 553d262..35a5070 100644 --- a/manifests/10_content_state/astronaut_comment_scope.json +++ b/manifests/10_content_state/astronaut_comment_scope.json @@ -23,187 +23,186 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" - } - ] - } - ], - "annotations": [ - { - "id": "https://example.org/iiif/scene1/page/p2/1", - "type": "AnnotationPage", - "items": [ + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } + }, { - "id": "https://example.org/iiif/3d/anno2", + "id": "https://example.org/iiif/3d/camera-anno-glove", "type": "Annotation", - "motivation": ["commenting"], + "motivation": ["painting"], + "behavior": ["hidden"], "body": { - "id": "https://example.org/iiif/3d/anno2/bodies/glove", - "type": "TextualBody", - "value": "Glove", - "language": "en", - "format": "text/plain" + "id": "https://example.org/iiif/3d/cameras/1", + "type": "PerspectiveCamera", + "label": {"en": ["Perspective Camera for Glove"]}, + "lookAt": { + "id": "https://example.org/uuid/6799e7d1-89a1-4e76-bcb9-3c0c47065598", + "type": "PointSelector", + "x": 0.0, + "y": 2.0108470916748047, + "z": -0.012333005666732798 + } }, "target": { - "id": "https://example.org/uuid/ab7f9b03-2c13-416c-85d8-13e4ef6d6a3b", + "id": "https://example.org/uuid/48350b8f-be54-4a20-990e-80b596efbb36", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { - "id": "https://example.org/uuid/bfa9c562-3480-4605-aa60-fff02a1d6716", + "id": "https://example.org/uuid/1a0f1b38-2ab7-4603-bfc3-353e77f18c93", "type": "PointSelector", - "x": 1.075, - "y": 1.894, - "z": 0.204 + "x": 0.0, + "y": 2.010847091674805, + "z": 9.11616179783789 } - ], - "scope": { - "id": "https://example.org/iiif/3d/anno2/scope1", - "type": "Annotation", - "motivation": ["contentState"], - "target": { - "id": "https://example.org/iiif/scene1", - "type": "Scene", - "items": [ - { - "id": "https://example.org/iiif/scene1/page/p3/1", - "type": "AnnotationPage", - "items": [ - { - "id": "https://example.org/iiif/3d/anno2/scope1/anno1", - "type": "Annotation", - "motivation": ["painting"], - "body": { - "id": "https://example.org/iiif/3d/cameras/1", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera for Glove"]}, - "lookAt": { - "id": "https://example.org/uuid/6799e7d1-89a1-4e76-bcb9-3c0c47065598", - "type": "PointSelector", - "x": 0.0, - "y": 2.0108470916748047, - "z": -0.012333005666732798 - } - }, - "target": { - "id": "https://example.org/uuid/48350b8f-be54-4a20-990e-80b596efbb36", - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], - "selector": [ - { - "id": "https://example.org/uuid/1a0f1b38-2ab7-4603-bfc3-353e77f18c93", - "type": "PointSelector", - "x": 0.0, - "y": 2.010847091674805, - "z": 9.11616179783789 - } - ] - } - } - ] - } - ] - } - } + ] } }, { - "id": "https://example.org/iiif/3d/anno3", + "id": "https://example.org/iiif/3d/camera-anno-helmet", "type": "Annotation", - "motivation": ["commenting"], - "bodyValue": { - "id": "https://example.org/iiif/3d/anno3/bodies/helmet", - "type": "TextualBody", - "value": "Helmet", - "language": "en", - "format": "text/plain" - }, + "motivation": ["painting"], + "behavior": ["hidden"], + "body": { + "id": "https://example.org/iiif/3d/cameras/2", + "type": "PerspectiveCamera", + "label": {"en": ["Perspective Camera for Helmet"]}, + "lookAt": { + "id": "https://example.org/uuid/80ace027-d43d-48f2-81dc-59bfed7b61cc", + "type": "PointSelector", + "x": 0.0, + "y": 2.0108470916748047, + "z": -0.012333005666732798 + } + }, "target": { - "id": "https://example.org/uuid/8e6a68cd-a5be-4661-acc2-a373f2e749ae", + "id": "https://example.org/uuid/ea4fcfb0-7341-48e3-a85d-d9c9f2bac5a0", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { - "id": "https://example.org/uuid/7f940815-62f7-4d99-99e9-2f2a1ba0e7c8", + "id": "https://example.org/uuid/fa64be77-e766-49f0-a89c-cf1a6b7f5869", "type": "PointSelector", - "x": 0.006, - "y": 3.498, - "z": 0.703 + "x": 0.0, + "y": 2.010847091674805, + "z": 9.11616179783789 } - ], - "scope": { - "id": "https://example.org/iiif/3d/anno3/scope1", - "type": "Annotation", - "motivation": ["contentState"], - "target": { - "id": "https://example.org/iiif/scene1", - "type": "Scene", - "items": [ - { - "id": "https://example.org/iiif/scene1/page/p3/1", - "type": "AnnotationPage", - "items": [ - { - "id": "https://example.org/iiif/3d/anno3/scope1/anno1", - "type": "Annotation", - "motivation": ["painting"], - "body": { - "id": "https://example.org/iiif/3d/cameras/2", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera for Helmet"]}, - "lookAt": { - "id": "https://example.org/uuid/80ace027-d43d-48f2-81dc-59bfed7b61cc", - "type": "PointSelector", - "x": 0.0, - "y": 2.0108470916748047, - "z": -0.012333005666732798 - } - }, - "target": { - "id": "https://example.org/uuid/ea4fcfb0-7341-48e3-a85d-d9c9f2bac5a0", - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], - "selector": [ - { - "id": "https://example.org/uuid/fa64be77-e766-49f0-a89c-cf1a6b7f5869", - "type": "PointSelector", - "x": 0.0, - "y": 2.010847091674805, - "z": 9.11616179783789 - } - ] - } - } - ] - } - ] - } - } + ] } } ] } ] } + ], + "annotations": [ + { + "id": "https://example.org/iiif/scene1/page/p2/1", + "type": "AnnotationPage", + "items": [ + { + "id": "https://example.org/iiif/3d/anno2", + "type": "Annotation", + "motivation": ["commenting"], + "body": { + "id": "https://example.org/iiif/3d/anno2/bodies/glove", + "type": "TextualBody", + "value": "Glove", + "language": ["en"], + "format": "text/plain" + }, + "target": { + "id": "https://example.org/uuid/ab7f9b03-2c13-416c-85d8-13e4ef6d6a3b", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { + "id": "https://example.org/uuid/bfa9c562-3480-4605-aa60-fff02a1d6716", + "type": "PointSelector", + "x": 1.075, + "y": 1.894, + "z": 0.204 + } + ] + } + }, + { + "id": "https://example.org/iiif/3d/anno3", + "type": "Annotation", + "motivation": ["commenting"], + "body": { + "id": "https://example.org/iiif/3d/anno3/bodies/helmet", + "type": "TextualBody", + "value": "Helmet", + "language": ["en"], + "format": "text/plain" + }, + "target": { + "id": "https://example.org/uuid/8e6a68cd-a5be-4661-acc2-a373f2e749ae", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { + "id": "https://example.org/uuid/7f940815-62f7-4d99-99e9-2f2a1ba0e7c8", + "type": "PointSelector", + "x": 0.006, + "y": 3.498, + "z": 0.703 + } + ] + } + }, + { + "id": "https://example.org/iiif/3d/activating/glove", + "type": "Annotation", + "motivation": ["activating"], + "target": { + "id": "https://example.org/iiif/3d/anno2", + "type": "Annotation" + }, + "body": { + "id": "https://example.org/iiif/3d/activating/glove/body", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/3d/camera-anno-glove", + "type": "Annotation" + }, + "action": ["show", "enable", "select"] + } + }, + { + "id": "https://example.org/iiif/3d/activating/helmet", + "type": "Annotation", + "motivation": ["activating"], + "target": { + "id": "https://example.org/iiif/3d/anno3", + "type": "Annotation" + }, + "body": { + "id": "https://example.org/iiif/3d/activating/helmet/body", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/3d/camera-anno-helmet", + "type": "Annotation" + }, + "action": ["show", "enable", "select"] + } + } + ] + } ] } diff --git a/manifests/10_content_state/whale_comment_scope_content_state.json b/manifests/10_content_state/whale_comment_scope_content_state.json index 691f424..bac5f3d 100644 --- a/manifests/10_content_state/whale_comment_scope_content_state.json +++ b/manifests/10_content_state/whale_comment_scope_content_state.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -51,13 +50,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -67,180 +65,180 @@ } ] } - } - ] - } - ], - "annotations": [ - { - "id": "https://example.org/iiif/scene1/page/p1/annotations/1", - "type": "AnnotationPage", - "items": [ + }, { - "id": "https://example.org/iiif/3d/anno7", + "id": "https://example.org/iiif/3d/anno8", "type": "Annotation", - "motivation": ["commenting"], - "bodyValue": "Mandibular tooth", + "motivation": ["painting"], + "behavior": ["hidden"], + "body": { + "id": "https://example.org/iiif/3d/anno8/body", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/3d/cameras/mandibular-tooth", + "type": "PerspectiveCamera", + "label": {"en": ["Perspective Camera Pointed At Front of Cranium and Mandible"]}, + "fieldOfView": 50.0, + "near": 0.10, + "far": 2000.0 + } + }, "target": { + "id": "https://example.org/iiif/3d/anno8/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", - "x": 0.011, - "y": 0.069, - "z": 0.231 - } - ], - "scope": { - "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/anno4", - "type": "Annotation", - "motivation": ["contentState"], - "target": { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene", - "backgroundColor": "yellow", - "items": [ - { - "id": "https://example.org/iiif/scene1/page/p3/1", - "type": "AnnotationPage", - "items": [ - { - "id": "https://example.org/iiif/3d/anno8", - "type": "Annotation", - "motivation": ["painting"], - "body": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/3d/cameras/1", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera Pointed At Front of Cranium and Mandible"]}, - "fieldOfView": 50.0, - "near": 0.10, - "far": 2000.0 - } - ] - }, - "target": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], - "selector": [ - { - "type": "PointSelector", - "x": 0.0, - "y": 0.15, - "z": 0.75 - } - ] - } - } - ] - } - ] + "x": 0.0, + "y": 0.15, + "z": 0.75 } - } + ] } }, { - "id": "https://example.org/iiif/3d/anno5", + "id": "https://example.org/iiif/3d/anno6", "type": "Annotation", - "motivation": ["commenting"], - "bodyValue": "Right pterygoid hamulus", - "target": { + "motivation": ["painting"], + "behavior": ["hidden"], + "body": { + "id": "https://example.org/iiif/3d/anno6/body", "type": "SpecificResource", - "source": [ + "source": { + "id": "https://example.org/iiif/3d/cameras/hamulus", + "type": "PerspectiveCamera", + "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, + "fieldOfView": 50.0, + "near": 0.10, + "far": 2000.0 + }, + "transform": [ { - "id": "https://example.org/iiif/scene1", - "type": "Scene" + "type": "RotateTransform", + "x": -15.0, + "y": 215.0, + "z": 0.0 } - ], + ] + }, + "target": { + "id": "https://example.org/iiif/3d/anno6/target", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", - "x": 0.040, - "y": 0.063, - "z": -0.066 + "x": -0.25, + "y": 0.0, + "z": -0.5 } - ], - "scope": { - "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/anno3", - "type": "Annotation", - "motivation": ["contentState"], - "target": { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene", - "backgroundColor": "green", - "items": [ - { - "id": "https://example.org/iiif/scene1/page/p3/1", - "type": "AnnotationPage", - "items": [ - { - "id": "https://example.org/iiif/3d/anno6", - "type": "Annotation", - "motivation": ["painting"], - "body": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/3d/cameras/1", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, - "fieldOfView": 50.0, - "near": 0.10, - "far": 2000.0 - } - ], - "transform": [ - { - "type": "RotateTransform", - "x": -15.0, - "y": 215.0, - "z": 0.0 - } - ] - }, - "target": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], - "selector": [ - { - "type": "PointSelector", - "x": -0.25, - "y": 0.0, - "z": -0.5 - } - ] - } - } - ] - } - ] - } - } + ] } } ] } ] } + ], + "annotations": [ + { + "id": "https://example.org/iiif/scene1/page/p1/annotations/1", + "type": "AnnotationPage", + "items": [ + { + "id": "https://example.org/iiif/3d/anno7", + "type": "Annotation", + "motivation": ["commenting"], + "body": { + "type": "TextualBody", + "value": "Mandibular tooth" + }, + "target": { + "id": "https://example.org/iiif/3d/anno7/target", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { + "type": "PointSelector", + "x": 0.011, + "y": 0.069, + "z": 0.231 + } + ] + } + }, + { + "id": "https://example.org/iiif/3d/anno5", + "type": "Annotation", + "motivation": ["commenting"], + "body": { + "type": "TextualBody", + "value": "Right pterygoid hamulus" + }, + "target": { + "id": "https://example.org/iiif/3d/anno5/target", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { + "type": "PointSelector", + "x": 0.040, + "y": 0.063, + "z": -0.066 + } + ] + } + }, + { + "id": "https://example.org/iiif/3d/activating/tooth", + "type": "Annotation", + "motivation": ["activating"], + "target": { + "id": "https://example.org/iiif/3d/anno7", + "type": "Annotation" + }, + "body": { + "id": "https://example.org/iiif/3d/activating/tooth/body", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/3d/anno8", + "type": "Annotation" + }, + "action": ["show", "enable", "select"] + } + }, + { + "id": "https://example.org/iiif/3d/activating/hamulus", + "type": "Annotation", + "motivation": ["activating"], + "target": { + "id": "https://example.org/iiif/3d/anno5", + "type": "Annotation" + }, + "body": { + "id": "https://example.org/iiif/3d/activating/hamulus/body", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/3d/anno6", + "type": "Annotation" + }, + "action": ["show", "enable", "select"] + } + } + ] + } ] } diff --git a/manifests/11_special/astronaut_comment_activating_motivation.json b/manifests/11_special/astronaut_comment_activating_motivation.json index ce95992..2c593ee 100644 --- a/manifests/11_special/astronaut_comment_activating_motivation.json +++ b/manifests/11_special/astronaut_comment_activating_motivation.json @@ -6,7 +6,7 @@ "summary": { "en": ["Viewer should render the model at the scene origin and two comment annotations, one targeting a point near the astronaut's glove and the other targeting a point near the astronaut's helmet. Each comment annotation has a specific camera position and view specified for it using annotations with activating motivation."] }, "items": [ { - "id": "https://example.org/iiif/scene1/page/p1/1", + "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { "en": ["A Scene"] }, "items": [ @@ -23,7 +23,10 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1/page/p1/1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/cameras/1", @@ -45,12 +48,10 @@ "target": { "id": "https://example.org/uuid/48350b8f-be54-4a20-990e-80b596efbb36", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "id": "https://example.org/uuid/1a0f1b38-2ab7-4603-bfc3-353e77f18c93", @@ -82,12 +83,10 @@ "target": { "id": "https://example.org/uuid/ea4fcfb0-7341-48e3-a85d-d9c9f2bac5a0", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "id": "https://example.org/uuid/fa64be77-e766-49f0-a89c-cf1a6b7f5869", @@ -101,93 +100,109 @@ } ] } - ], - "annotations": [ + ] + } + ], + "annotations": [ + { + "id": "https://example.org/iiif/scene1/page/p2/1", + "type": "AnnotationPage", + "items": [ { - "id": "https://example.org/iiif/scene1/page/p2/1", - "type": "AnnotationPage", - "items": [ - { - "id": "https://example.org/iiif/3d/comments/1", - "type": "Annotation", - "motivation": ["commenting"], - "body": { - "id": "https://example.org/iiif/3d/comments/1/body", - "type": "TextualBody", - "value": "Glove", - "language": "en", - "format": "text/plain" - }, - "target": { - "id": "https://example.org/uuid/ab7f9b03-2c13-416c-85d8-13e4ef6d6a3b", - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], - "selector": [ - { - "id": "https://example.org/uuid/bfa9c562-3480-4605-aa60-fff02a1d6716", - "type": "PointSelector", - "x": 1.075, - "y": 1.894, - "z": 0.204 - } - ] + "id": "https://example.org/iiif/3d/comments/1", + "type": "Annotation", + "motivation": ["commenting"], + "body": { + "id": "https://example.org/iiif/3d/comments/1/body", + "type": "TextualBody", + "value": "Glove", + "language": ["en"], + "format": "text/plain" + }, + "target": { + "id": "https://example.org/uuid/ab7f9b03-2c13-416c-85d8-13e4ef6d6a3b", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { + "id": "https://example.org/uuid/bfa9c562-3480-4605-aa60-fff02a1d6716", + "type": "PointSelector", + "x": 1.075, + "y": 1.894, + "z": 0.204 } + ] + } + }, + { + "id": "https://example.org/iiif/3d/comments/2", + "type": "Annotation", + "motivation": ["commenting"], + "body": { + "id": "https://example.org/iiif/3d/comments/2/body", + "type": "TextualBody", + "value": "Helmet", + "language": ["en"], + "format": "text/plain" + }, + "target": { + "id": "https://example.org/uuid/8e6a68cd-a5be-4661-acc2-a373f2e749ae", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" }, - { - "id": "https://example.org/iiif/3d/comments/2", - "type": "Annotation", - "motivation": ["commenting"], - "body": { - "id": "https://example.org/iiif/3d/comments/2/body", - "type": "TextualBody", - "value": "Helmet", - "language": "en", - "format": "text/plain" - }, - "target": { - "id": "https://example.org/uuid/8e6a68cd-a5be-4661-acc2-a373f2e749ae", - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], - "selector": [ - { - "id": "https://example.org/uuid/7f940815-62f7-4d99-99e9-2f2a1ba0e7c8", - "type": "PointSelector", - "x": 0.006, - "y": 3.498, - "z": 0.703 - } - ] + "selector": [ + { + "id": "https://example.org/uuid/7f940815-62f7-4d99-99e9-2f2a1ba0e7c8", + "type": "PointSelector", + "x": 0.006, + "y": 3.498, + "z": 0.703 } + ] + } + }, + { + "id": "https://example.org/iiif/3d/activating/1", + "type": "Annotation", + "motivation": ["activating"], + "summary": { "en": ["This annotation with motivation 'activating' links the first comment annotation (for the glove) to its camera. When the comment annotation is activated through user interaction, the camera annotation is shown and made the active camera."] }, + "target": { + "id": "https://example.org/iiif/3d/comments/1", + "type": "Annotation" + }, + "body": { + "id": "https://example.org/iiif/3d/activating/1/body", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/3d/cameras/1", + "type": "Annotation" }, - { - "id": "https://example.org/iiif/3d/activating/1", - "type": "Annotation", - "motivation": ["activating"], - "summary": { "en": ["This annotation with motivation 'activating' links the first comment annotation (for the glove) to its camera. By default, the camera is hidden. Clients are instructed that when the comment annotation is activated through user interaction that the camera annotation should be un-hidden (via enables) and then made the active camera (through the target)."] }, - "body": "https://example.org/iiif/3d/comments/1", - "enables": "https://example.org/iiif/3d/cameras/1", - "target": "https://example.org/iiif/3d/cameras/1" + "action": ["show", "enable", "select"] + } + }, + { + "id": "https://example.org/iiif/3d/activating/2", + "type": "Annotation", + "motivation": ["activating"], + "summary": { "en": ["This annotation with motivation 'activating' links the second comment annotation (for the helmet) to its camera. When the comment annotation is activated through user interaction, the camera annotation is shown and made the active camera."] }, + "target": { + "id": "https://example.org/iiif/3d/comments/2", + "type": "Annotation" + }, + "body": { + "id": "https://example.org/iiif/3d/activating/2/body", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/3d/cameras/2", + "type": "Annotation" }, - { - "id": "https://example.org/iiif/3d/activating/2", - "type": "Annotation", - "motivation": ["activating"], - "summary": { "en": ["This annotation with motivation 'activating' links the second comment annotation (for the helmet) to its camera. By default, the camera is hidden. Clients are instructed that when the comment annotation is activated through user interaction that the camera annotation should be un-hidden (via enables) and then made the active camera (through the target)."] }, - "body": "https://example.org/iiif/3d/comments/2", - "enables": "https://example.org/iiif/3d/cameras/2", - "target": "https://example.org/iiif/3d/cameras/2" - } - ] + "action": ["show", "enable", "select"] + } } ] } diff --git a/manifests/2_cameras/perspective_camera.json b/manifests/2_cameras/perspective_camera.json index e6dfd17..00ab6e5 100644 --- a/manifests/2_cameras/perspective_camera.json +++ b/manifests/2_cameras/perspective_camera.json @@ -23,7 +23,10 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno2", @@ -34,7 +37,10 @@ "type": "PerspectiveCamera", "label": {"en": ["Perspective Camera 1"]} }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } } ] } diff --git a/manifests/2_cameras/positioned_camera_lookat_anno.json b/manifests/2_cameras/positioned_camera_lookat_anno.json index 1cc9d68..0afcc2f 100644 --- a/manifests/2_cameras/positioned_camera_lookat_anno.json +++ b/manifests/2_cameras/positioned_camera_lookat_anno.json @@ -9,7 +9,6 @@ "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { "en": ["Scene with Model and Camera"] }, - "items": [ { "id": "https://example.org/iiif/scene1/page/p1/1", @@ -24,7 +23,10 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno2", @@ -40,13 +42,12 @@ } }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/2_cameras/positioned_camera_lookat_point.json b/manifests/2_cameras/positioned_camera_lookat_point.json index acfa45c..b32962d 100644 --- a/manifests/2_cameras/positioned_camera_lookat_point.json +++ b/manifests/2_cameras/positioned_camera_lookat_point.json @@ -9,7 +9,6 @@ "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { "en": ["Scene with a Model and Camera Looking at a Point"] }, - "items": [ { "id": "https://example.org/iiif/scene1/page/p1/1", @@ -24,7 +23,10 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno2", @@ -42,13 +44,12 @@ } }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/2_cameras/zz_choice_of_cameras.json b/manifests/2_cameras/zz_choice_of_cameras.json index 40d0063..8289b0f 100644 --- a/manifests/2_cameras/zz_choice_of_cameras.json +++ b/manifests/2_cameras/zz_choice_of_cameras.json @@ -10,7 +10,7 @@ }, "items": [ { - "id": "https://example.org/iiif/scene1/page/p1/1", + "id": "https://example.org/iiif/scene1", "type": "Scene", "items": [ { @@ -26,18 +26,19 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1/page/p1/1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, - { - "id": "https://example.org/iiif/3d/choice", - "type": "Choice", - "items": [ - { - "id": "https://example.org/iiif/3d/anno2", - "type": "Annotation", - "motivation": ["painting"], - "body": { + "id": "https://example.org/iiif/3d/anno2", + "type": "Annotation", + "motivation": ["painting"], + "body": { + "type": "Choice", + "items": [ + { "id": "https://example.org/iiif/3d/cameras/1", "type": "PerspectiveCamera", "fieldOfView": 50, @@ -49,29 +50,7 @@ "z": 0 } }, - "target": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], - "selector": [ - { - "type": "PointSelector", - "x": 0.0, - "y": 3.0, - "z": -10.0 - } - ] - } - }, - { - "id": "https://example.org/iiif/3d/anno3", - "type": "Annotation", - "motivation": ["painting"], - "body": { + { "id": "https://example.org/iiif/3d/cameras/2", "type": "OrthographicCamera", "label": { "en": ["Orthographic Camera 1"] }, @@ -81,26 +60,25 @@ "y": 1, "z": 0 } - }, - "target": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], - "selector": [ - { - "type": "PointSelector", - "x": 0.0, - "y": 3.0, - "z": -10.0 - } - ] } - } - ] + ] + }, + "target": { + "id": "https://example.org/iiif/3d/anno2/target", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { + "type": "PointSelector", + "x": 0.0, + "y": 3.0, + "z": -10.0 + } + ] + } } ] } diff --git a/manifests/2_cameras/zz_orthographic_camera.json b/manifests/2_cameras/zz_orthographic_camera.json index 6611afb..ef2feb4 100644 --- a/manifests/2_cameras/zz_orthographic_camera.json +++ b/manifests/2_cameras/zz_orthographic_camera.json @@ -1,64 +1,65 @@ { - "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/orthographic_camera.json", - "type": "Manifest", - "label": { "en": ["Orthographic Camera"] }, - "summary": { "en": ["Viewer should render the model at the scene origin and an Orthographic camera looking at the model, and add default lighting."] }, - "items": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene", - "items": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "AnnotationPage", - "items": [ - { - "id": "https://example.org/iiif/3d/anno1", - "type": "Annotation", - "motivation": ["painting"], - "body": { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", + "@context": "http://iiif.io/api/presentation/4/context.json", + "id": "https://example.org/iiif/3d/orthographic_camera.json", + "type": "Manifest", + "label": { "en": ["Orthographic Camera"] }, + "summary": { "en": ["Viewer should render the model at the scene origin and an Orthographic camera looking at the model, and add default lighting."] }, + "items": [ + { + "id": "https://example.org/iiif/scene1", + "type": "Scene", + "items": [ + { + "id": "https://example.org/iiif/scene1/page/p1/1", + "type": "AnnotationPage", + "items": [ + { + "id": "https://example.org/iiif/3d/anno1", + "type": "Annotation", + "motivation": ["painting"], + "body": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", + "type": "Model", "format": "model/gltf-binary" - }, - "target": "https://example.org/iiif/scene1/page/p1/1" }, - { - "id": "https://example.org/iiif/3d/anno3", - "type": "Annotation", - "motivation": ["painting"], - "body": { - "id": "https://example.org/iiif/3d/cameras/2", - "type": "OrthographicCamera", - "label": {"en": ["Orthographic Camera 1"]}, - "lookAt": { - "type": "Annotation", - "id": "https://example.org/iiif/3d/anno1" - } - }, - "target": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], - "selector": [ - { - "type": "PointSelector", - "x": 0.0, - "y": 3.0, - "z": -10.0 - } - ] + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } + }, + { + "id": "https://example.org/iiif/3d/anno3", + "type": "Annotation", + "motivation": ["painting"], + "body": { + "id": "https://example.org/iiif/3d/cameras/2", + "type": "OrthographicCamera", + "label": {"en": ["Orthographic Camera 1"]}, + "lookAt": { + "type": "Annotation", + "id": "https://example.org/iiif/3d/anno1" } + }, + "target": { + "id": "https://example.org/iiif/3d/anno3/target", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { + "type": "PointSelector", + "x": 0.0, + "y": 3.0, + "z": -10.0 + } + ] } - ] - } - ] - } - ] - } - \ No newline at end of file + } + ] + } + ] + } + ] +} diff --git a/manifests/3_lights/ambient_green_light.json b/manifests/3_lights/ambient_green_light.json index aab3df3..391ea10 100644 --- a/manifests/3_lights/ambient_green_light.json +++ b/manifests/3_lights/ambient_green_light.json @@ -23,7 +23,10 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno2", @@ -34,9 +37,12 @@ "type": "AmbientLight", "label": {"en": ["Ambient Green Light"]}, "color": "#00FF00", - "intensity": {"type": "Value", "value": 0.5, "unit": "relative"} + "intensity": {"type": "Quantity", "quantityValue": 0.5, "unit": "relative"} }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } } ] } diff --git a/manifests/3_lights/direction_light_lookat_positioned.json b/manifests/3_lights/direction_light_lookat_positioned.json index f539daf..5df4511 100644 --- a/manifests/3_lights/direction_light_lookat_positioned.json +++ b/manifests/3_lights/direction_light_lookat_positioned.json @@ -9,7 +9,6 @@ "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { "en": ["Scene with Model and DirectionalLight"] }, - "items": [ { "id": "https://example.org/iiif/scene1/page/p1/1", @@ -24,22 +23,26 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno2", "type": "Annotation", "motivation": ["painting"], "body": { - "id": "https://example.org/iiif/3d/lights/1", - "type": "DirectionalLight", - "label": {"en": ["Directional Light 1"]}, - "lookAt": { - "id": "https://example.org/iiif/3d/anno1", - "type": "Annotation" - } + "id": "https://example.org/iiif/3d/lights/1", + "type": "DirectionalLight", + "label": {"en": ["Directional Light 1"]}, + "lookAt": { + "id": "https://example.org/iiif/3d/anno1", + "type": "Annotation" + } }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", "source": { "id": "https://example.org/iiif/scene1", diff --git a/manifests/3_lights/direction_light_transform_rotate.json b/manifests/3_lights/direction_light_transform_rotate.json index 8b3f756..f63a630 100644 --- a/manifests/3_lights/direction_light_transform_rotate.json +++ b/manifests/3_lights/direction_light_transform_rotate.json @@ -9,7 +9,6 @@ "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { "en": ["Scene with Model and Rotated DirectionalLight"] }, - "items": [ { "id": "https://example.org/iiif/scene1/page/p1/1", @@ -24,28 +23,30 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno2", "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno2/body", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/3d/lights/1", - "type": "DirectionalLight", - "label": {"en": ["Directional Light 1"]} - } - ], + "source": { + "id": "https://example.org/iiif/3d/lights/1", + "type": "DirectionalLight", + "label": {"en": ["Directional Light 1"]} + }, "transform": [ { "type": "RotateTransform", "x": 30, "y": 0, "z": 0 - } + } ] }, "target": { diff --git a/manifests/3_lights/multiple_lights_with_intensities_and_colors.json b/manifests/3_lights/multiple_lights_with_intensities_and_colors.json index 5330cb3..427ad49 100644 --- a/manifests/3_lights/multiple_lights_with_intensities_and_colors.json +++ b/manifests/3_lights/multiple_lights_with_intensities_and_colors.json @@ -9,12 +9,12 @@ }, "summary": { "en": [ - "Viewer should render the model at the scene origin, and then viewer should add one red spotlight pointing at the front of the helmet, one blue spotlight point at the front-center of the model, and an ambient green light source. The viewer should add a default camera but NOT any other lighting." + "Viewer should render the model at the scene origin, and then viewer should add one red spotlight pointing at the front of the helmet, one blue spotlight point at the front-center of the model, and an ambient green light source. The viewer should add a default camera but NOT any other lighting." ] }, "items": [ { - "id": "https://example.org/iiif/scene1/page/p1/1", + "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { "en": [ @@ -30,23 +30,20 @@ { "id": "https://example.org/iiif/3d/anno1", "type": "Annotation", - "motivation": [ - "painting" - ], + "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno1/body", "type": "SpecificResource", "source": { "id": "https://example.org/iiif/3d/lights/1", "type": "SpotLight", "label": { - "en": [ - "Red Spot Light" - ] + "en": ["Red Spot Light"] }, "color": "#ff0000", "intensity": { - "type": "Value", - "value": 100, + "type": "Quantity", + "quantityValue": 1.0, "unit": "relative" }, "angle": 5 @@ -67,69 +64,61 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ] + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } } }, { "id": "https://example.org/iiif/3d/anno2", "type": "Annotation", - "motivation": [ - "painting" - ], + "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno2/body", "type": "SpecificResource", "source": { - "id": "https://example.org/iiif/3d/lights/1", + "id": "https://example.org/iiif/3d/lights/2", "type": "AmbientLight", "label": { - "en": [ - "Green Ambient Light" - ] + "en": ["Green Ambient Light"] }, "color": "#7aff40", "intensity": { - "type": "Value", - "value": 0.5, + "type": "Quantity", + "quantityValue": 0.5, "unit": "relative" } } }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ] + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } } }, { "id": "https://example.org/iiif/3d/anno3", "type": "Annotation", - "motivation": [ - "painting" - ], + "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno3/body", "type": "SpecificResource", "source": { - "id": "https://example.org/iiif/3d/lights/1", + "id": "https://example.org/iiif/3d/lights/3", "type": "SpotLight", "label": { - "en": [ - "Blue Spot Light" - ] + "en": ["Blue Spot Light"] }, "color": "#0f00ff", "intensity": { - "type": "Value", - "value": 10, + "type": "Quantity", + "quantityValue": 1.0, "unit": "relative" }, "angle": 5 @@ -150,42 +139,37 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno3/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ] + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } } }, { "id": "https://example.org/iiif/3d/anno4", "type": "Annotation", - "motivation": [ - "painting" - ], + "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno4/body", "type": "SpecificResource", "source": { "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", "type": "Model", "label": { - "en": [ - "Astronaut" - ] + "en": ["Astronaut"] }, "format": "model/gltf-binary" } }, "target": { + "id": "https://example.org/iiif/3d/anno4/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ] + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } } } ] @@ -193,4 +177,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/manifests/4_transform_and_position/model_position.json b/manifests/4_transform_and_position/model_position.json index 8652fad..37e0587 100644 --- a/manifests/4_transform_and_position/model_position.json +++ b/manifests/4_transform_and_position/model_position.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/4_transform_and_position/model_transform_negative_scale_position.json b/manifests/4_transform_and_position/model_transform_negative_scale_position.json index b3fa8bf..77c32fd 100644 --- a/manifests/4_transform_and_position/model_transform_negative_scale_position.json +++ b/manifests/4_transform_and_position/model_transform_negative_scale_position.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -46,14 +45,13 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno2/body", "type": "SpecificResource", - "source": [ - { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" - } - ], + "source": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", + "type": "Model", + "format": "model/gltf-binary" + }, "transform": [ { "type": "ScaleTransform", @@ -64,13 +62,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/4_transform_and_position/model_transform_rotate_position.json b/manifests/4_transform_and_position/model_transform_rotate_position.json index 35d224e..a61ab04 100644 --- a/manifests/4_transform_and_position/model_transform_rotate_position.json +++ b/manifests/4_transform_and_position/model_transform_rotate_position.json @@ -19,14 +19,13 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno1/body", "type": "SpecificResource", - "source": [ - { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" - } - ], + "source": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", + "type": "Model", + "format": "model/gltf-binary" + }, "transform": [ { "type": "RotateTransform", @@ -37,13 +36,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/4_transform_and_position/model_transform_rotate_translate_position.json b/manifests/4_transform_and_position/model_transform_rotate_translate_position.json index 2bcdc50..a667e54 100644 --- a/manifests/4_transform_and_position/model_transform_rotate_translate_position.json +++ b/manifests/4_transform_and_position/model_transform_rotate_translate_position.json @@ -19,14 +19,13 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno1/body", "type": "SpecificResource", - "source": [ - { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" - } - ], + "source": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", + "type": "Model", + "format": "model/gltf-binary" + }, "transform": [ { "type": "RotateTransform", @@ -43,13 +42,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/4_transform_and_position/model_transform_scale_position.json b/manifests/4_transform_and_position/model_transform_scale_position.json index e7821e5..ee9ddb8 100644 --- a/manifests/4_transform_and_position/model_transform_scale_position.json +++ b/manifests/4_transform_and_position/model_transform_scale_position.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -46,14 +45,13 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno2/body", "type": "SpecificResource", - "source": [ - { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" - } - ], + "source": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", + "type": "Model", + "format": "model/gltf-binary" + }, "transform": [ { "type": "TranslateTransform", @@ -70,13 +68,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/4_transform_and_position/model_transform_scale_translate_position.json b/manifests/4_transform_and_position/model_transform_scale_translate_position.json index faa9979..a894bd5 100644 --- a/manifests/4_transform_and_position/model_transform_scale_translate_position.json +++ b/manifests/4_transform_and_position/model_transform_scale_translate_position.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -46,14 +45,13 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno2/body", "type": "SpecificResource", - "source": [ - { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" - } - ], + "source": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", + "type": "Model", + "format": "model/gltf-binary" + }, "transform": [ { "type": "ScaleTransform", @@ -70,13 +68,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/4_transform_and_position/model_transform_translate_rotate_position.json b/manifests/4_transform_and_position/model_transform_translate_rotate_position.json index d09d24d..695d7c8 100644 --- a/manifests/4_transform_and_position/model_transform_translate_rotate_position.json +++ b/manifests/4_transform_and_position/model_transform_translate_rotate_position.json @@ -19,14 +19,13 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno1/body", "type": "SpecificResource", - "source": [ - { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" - } - ], + "source": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", + "type": "Model", + "format": "model/gltf-binary" + }, "transform": [ { "type": "TranslateTransform", @@ -43,13 +42,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/4_transform_and_position/model_transform_translate_scale_position.json b/manifests/4_transform_and_position/model_transform_translate_scale_position.json index d27706d..e8105cb 100644 --- a/manifests/4_transform_and_position/model_transform_translate_scale_position.json +++ b/manifests/4_transform_and_position/model_transform_translate_scale_position.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -46,14 +45,13 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno2/body", "type": "SpecificResource", - "source": [ - { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" - } - ], + "source": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", + "type": "Model", + "format": "model/gltf-binary" + }, "transform": [ { "type": "ScaleTransform", @@ -64,13 +62,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/4_transform_and_position/tipped_and_rotated_astronaut.json b/manifests/4_transform_and_position/tipped_and_rotated_astronaut.json index 4dce33f..d505430 100644 --- a/manifests/4_transform_and_position/tipped_and_rotated_astronaut.json +++ b/manifests/4_transform_and_position/tipped_and_rotated_astronaut.json @@ -6,7 +6,7 @@ "summary": { "en": ["Astronaut with rotation property defined in glb file and counteracting IIIF transform"] }, "items": [ { - "id": "https://example.org/iiif/scene1/page/p1/1", + "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { "en": ["A Scene"] }, "items": [ @@ -19,47 +19,50 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno2/body", "type": "SpecificResource", - "source" : { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/tipped_astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" + "source": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/tipped_astronaut.glb", + "type": "Model", + "format": "model/gltf-binary" }, - "transform" : [ - { - "type": "RotateTransform", - "x" : 15, - "y" : 20, - "z" : 35 - } + "transform": [ + { + "type": "RotateTransform", + "x": 15, + "y": 20, + "z": 35 + } ] }, - "target": "https://example.org/iiif/scene1/page/p1/1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno1", "type": "Annotation", "motivation": ["painting"], - "body": { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/lamp_post/lamp_post.glb", + "body": { + "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/lamp_post/lamp_post.glb", "type": "Model", "format": "model/gltf-binary", - "rights" : "https://creativecommons.org/licenses/by/4.0/", - "metadata" : [ - { - "label": { "en": [ "Attribution" ] }, - "value": { "none": [ "https://sketchfab.com/3d-models/old-fashioned-streetlamp-e98ebb84f03142618eb958817fe86967" ] } - } + "rights": "https://creativecommons.org/licenses/by/4.0/", + "metadata": [ + { + "label": { "en": ["Attribution"] }, + "value": { "none": ["https://sketchfab.com/3d-models/old-fashioned-streetlamp-e98ebb84f03142618eb958817fe86967"] } + } ] }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -70,7 +73,6 @@ ] } } - ] } ] diff --git a/manifests/4_transform_and_position/tipped_astronaut.json b/manifests/4_transform_and_position/tipped_astronaut.json index 3c5ecba..f77342e 100644 --- a/manifests/4_transform_and_position/tipped_astronaut.json +++ b/manifests/4_transform_and_position/tipped_astronaut.json @@ -6,7 +6,7 @@ "summary": { "en": ["Astronaut with rotation property defined in glb file"] }, "items": [ { - "id": "https://example.org/iiif/scene1/page/p1/1", + "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { "en": ["A Scene"] }, "items": [ @@ -22,8 +22,11 @@ "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/tipped_astronaut.glb", "type": "Model", "format": "model/gltf-binary" - }, - "target": "https://example.org/iiif/scene1/page/p1/1" + }, + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno1", @@ -33,22 +36,21 @@ "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/lamp_post/lamp_post.glb", "type": "Model", "format": "model/gltf-binary", - "rights" : "https://creativecommons.org/licenses/by/4.0/", - "metadata" : [ - { - "label": { "en": [ "Attribution" ] }, - "value": { "none": [ "https://sketchfab.com/3d-models/old-fashioned-streetlamp-e98ebb84f03142618eb958817fe86967" ] } - } + "rights": "https://creativecommons.org/licenses/by/4.0/", + "metadata": [ + { + "label": { "en": ["Attribution"] }, + "value": { "none": ["https://sketchfab.com/3d-models/old-fashioned-streetlamp-e98ebb84f03142618eb958817fe86967"] } + } ] }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -59,7 +61,6 @@ ] } } - ] } ] diff --git a/manifests/4_transform_and_position/whale_cranium_and_mandible_position.json b/manifests/4_transform_and_position/whale_cranium_and_mandible_position.json index d56039a..2c8830b 100644 --- a/manifests/4_transform_and_position/whale_cranium_and_mandible_position.json +++ b/manifests/4_transform_and_position/whale_cranium_and_mandible_position.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -51,13 +50,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/6_2d_canvases_in_scene/iiif_canvas_with_bgcolor_backward.json b/manifests/6_2d_canvases_in_scene/iiif_canvas_with_bgcolor_backward.json index c599517..618af9e 100644 --- a/manifests/6_2d_canvases_in_scene/iiif_canvas_with_bgcolor_backward.json +++ b/manifests/6_2d_canvases_in_scene/iiif_canvas_with_bgcolor_backward.json @@ -36,7 +36,10 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno2", @@ -47,6 +50,7 @@ "type": "Canvas" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", "source": { "id": "https://example.org/iiif/scene1", @@ -94,10 +98,13 @@ } ] }, - "target": "https://example.org/iiif/canvas/1" + "target": { + "id": "https://example.org/iiif/canvas/1", + "type": "Canvas" + } } ] - } + } ] } ] diff --git a/manifests/6_2d_canvases_in_scene/iiif_canvas_with_bgcolor_forward.json b/manifests/6_2d_canvases_in_scene/iiif_canvas_with_bgcolor_forward.json index 64f4a4d..d828106 100644 --- a/manifests/6_2d_canvases_in_scene/iiif_canvas_with_bgcolor_forward.json +++ b/manifests/6_2d_canvases_in_scene/iiif_canvas_with_bgcolor_forward.json @@ -36,7 +36,10 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } }, { "id": "https://example.org/iiif/3d/anno2", @@ -47,6 +50,7 @@ "type": "Canvas" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", "source": { "id": "https://example.org/iiif/scene1", @@ -94,10 +98,13 @@ } ] }, - "target": "https://example.org/iiif/canvas/1" + "target": { + "id": "https://example.org/iiif/canvas/1", + "type": "Canvas" + } } ] - } + } ] } ] diff --git a/manifests/9_commenting_annotations/astronaut_comment.json b/manifests/9_commenting_annotations/astronaut_comment.json index ca32753..7870963 100644 --- a/manifests/9_commenting_annotations/astronaut_comment.json +++ b/manifests/9_commenting_annotations/astronaut_comment.json @@ -23,7 +23,10 @@ "type": "Model", "format": "model/gltf-binary" }, - "target": "https://example.org/iiif/scene1" + "target": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + } } ] } @@ -37,15 +40,17 @@ "id": "https://example.org/iiif/3d/anno2", "type": "Annotation", "motivation": ["commenting"], - "bodyValue": "Glove", + "body": { + "type": "TextualBody", + "value": "Glove" + }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -60,15 +65,17 @@ "id": "https://example.org/iiif/3d/anno3", "type": "Annotation", "motivation": ["commenting"], - "bodyValue": "Helmet", + "body": { + "type": "TextualBody", + "value": "Helmet" + }, "target": { + "id": "https://example.org/iiif/3d/anno3/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/9_commenting_annotations/astronaut_multilingual_comment.json b/manifests/9_commenting_annotations/astronaut_multilingual_comment.json index 672ad2f..645946c 100644 --- a/manifests/9_commenting_annotations/astronaut_multilingual_comment.json +++ b/manifests/9_commenting_annotations/astronaut_multilingual_comment.json @@ -3,22 +3,17 @@ "id": "https://example.org/iiif/3d/model_origin.json", "type": "Manifest", "label": { - "en": [ - "Single Model with Multilingual Comment Annotations" - ] + "en": ["Single Model with Multilingual Comment Annotations"], + "es": ["Modelo único con anotaciones de comentarios multilingüe"] }, "summary": { "en": ["Viewer should render the model at the scene origin and two multilingual comment annotations, one targeting a point near the astronaut's glove and the other targeting a point near the astronaut's helmet."] }, "items": [ { - "id": "https://example.org/iiif/scene1/page/p1/1", + "id": "https://example.org/iiif/scene1", "type": "Scene", "label": { - "en": [ - "Single Model with Comment Annotations" - ], - "es": [ - "Modelo único con anotaciones de comentarios" - ] + "en": ["Single Model with Comment Annotations"], + "es": ["Modelo único con anotaciones de comentarios"] }, "backgroundColor": "#33404d", "items": [ @@ -29,30 +24,22 @@ { "id": "https://example.org/iiif/3d/anno1", "type": "Annotation", - "motivation": [ - "painting" - ], + "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno1/body", "type": "SpecificResource", "source": { "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", "type": "Model", "label": { - "en": [ - "Astronaut" - ] + "en": ["Astronaut"] }, "format": "model/gltf-binary" } }, "target": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" - } - ] + "id": "https://example.org/iiif/scene1", + "type": "Scene" } } ] @@ -66,36 +53,31 @@ { "id": "https://example.org/iiif/3d/anno2", "type": "Annotation", - "motivation": [ - "commenting" - ], - "body": [ - { - "type": "Choice", - "items": [ - { - "type": "TextualBody", - "value": "Glove", - "language": "en", - "format": "text/plain" - }, - { - "type": "TextualBody", - "value": "Guante", - "language": "es", - "format": "text/plain" - } - ] - } - ], - "target": { - "type": "SpecificResource", - "source": [ + "motivation": ["commenting"], + "body": { + "type": "Choice", + "items": [ + { + "type": "TextualBody", + "value": "Glove", + "language": ["en"], + "format": "text/plain" + }, { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" + "type": "TextualBody", + "value": "Guante", + "language": ["es"], + "format": "text/plain" } - ], + ] + }, + "target": { + "id": "https://example.org/iiif/3d/anno2/target", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -107,38 +89,33 @@ } }, { - "id": "https://example.org/iiif/3d/anno2", + "id": "https://example.org/iiif/3d/anno3", "type": "Annotation", - "motivation": [ - "commenting" - ], - "body": [ - { - "type": "Choice", - "items": [ - { - "type": "TextualBody", - "value": "Helmet", - "language": "en", - "format": "text/plain" - }, - { - "type": "TextualBody", - "value": "Casco", - "language": "es", - "format": "text/plain" - } - ] - } - ], - "target": { - "type": "SpecificResource", - "source": [ + "motivation": ["commenting"], + "body": { + "type": "Choice", + "items": [ { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "Scene" + "type": "TextualBody", + "value": "Helmet", + "language": ["en"], + "format": "text/plain" + }, + { + "type": "TextualBody", + "value": "Casco", + "language": ["es"], + "format": "text/plain" } - ], + ] + }, + "target": { + "id": "https://example.org/iiif/3d/anno3/target", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -154,4 +131,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/manifests/9_commenting_annotations/whale_comment.json b/manifests/9_commenting_annotations/whale_comment.json index 5520573..bcde67a 100644 --- a/manifests/9_commenting_annotations/whale_comment.json +++ b/manifests/9_commenting_annotations/whale_comment.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -51,13 +50,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -80,15 +78,17 @@ "id": "https://example.org/iiif/3d/anno3", "type": "Annotation", "motivation": ["commenting"], - "bodyValue": "Right pterygoid hamulus", + "body": { + "type": "TextualBody", + "value": "Right pterygoid hamulus" + }, "target": { + "id": "https://example.org/iiif/3d/anno3/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -96,7 +96,7 @@ "y": 0.063, "z": -0.066 } - ] + ] } } ] diff --git a/manifests/9_commenting_annotations/whale_comment_camera.json b/manifests/9_commenting_annotations/whale_comment_camera.json index d7e1592..dfd6e51 100644 --- a/manifests/9_commenting_annotations/whale_comment_camera.json +++ b/manifests/9_commenting_annotations/whale_comment_camera.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -51,13 +50,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -73,17 +71,16 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno4/body", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/3d/cameras/1", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, - "fieldOfView": 50.0, - "near": 0.10, - "far": 2000.0 - } - ], + "source": { + "id": "https://example.org/iiif/3d/cameras/1", + "type": "PerspectiveCamera", + "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, + "fieldOfView": 50.0, + "near": 0.10, + "far": 2000.0 + }, "transform": [ { "type": "RotateTransform", @@ -94,13 +91,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno4/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -123,15 +119,17 @@ "id": "https://example.org/iiif/3d/anno3", "type": "Annotation", "motivation": ["commenting"], - "bodyValue": "Right pterygoid hamulus", + "body": { + "type": "TextualBody", + "value": "Right pterygoid hamulus" + }, "target": { + "id": "https://example.org/iiif/3d/anno3/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/9_commenting_annotations/whale_comment_label_body_position.json b/manifests/9_commenting_annotations/whale_comment_label_body_position.json index 074a9ac..ccc4bd2 100644 --- a/manifests/9_commenting_annotations/whale_comment_label_body_position.json +++ b/manifests/9_commenting_annotations/whale_comment_label_body_position.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -51,13 +50,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -73,17 +71,16 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno4/body", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/3d/cameras/1", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, - "fieldOfView": 50.0, - "near": 0.10, - "far": 2000.0 - } - ], + "source": { + "id": "https://example.org/iiif/3d/cameras/1", + "type": "PerspectiveCamera", + "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, + "fieldOfView": 50.0, + "near": 0.10, + "far": 2000.0 + }, "transform": [ { "type": "RotateTransform", @@ -94,13 +91,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno4/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -114,7 +110,7 @@ ] } ], - "annotations" : [ + "annotations": [ { "id": "https://example.org/iiif/scene1/page/p2/1", "type": "AnnotationPage", @@ -124,32 +120,34 @@ "type": "Annotation", "motivation": ["commenting"], "body": { - "type" : "TextualBody", - "value" : "

Right pterygoid hamulus

", - "format" : "text/html", - "language" : "en", - "position": { - "type": "SpecificResource", - "source": [{ - "id": "https://example.org/iiif/scene1", - "type": "Scene" - }], - "selector": [{ + "type": "TextualBody", + "value": "

Right pterygoid hamulus

", + "format": "text/html", + "language": ["en"], + "position": { + "id": "https://example.org/iiif/3d/anno3/body/position", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { "type": "PointSelector", "x": 0.040, "y": 0.0, "z": -0.066 - }] - } + } + ] + } }, "target": { + "id": "https://example.org/iiif/3d/anno3/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/9_commenting_annotations/whale_comment_label_body_position_rotate.json b/manifests/9_commenting_annotations/whale_comment_label_body_position_rotate.json index c321ac0..f71ea79 100644 --- a/manifests/9_commenting_annotations/whale_comment_label_body_position_rotate.json +++ b/manifests/9_commenting_annotations/whale_comment_label_body_position_rotate.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -51,13 +50,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -73,17 +71,16 @@ "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno4/body", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/3d/cameras/1", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, - "fieldOfView": 50.0, - "near": 0.10, - "far": 2000.0 - } - ], + "source": { + "id": "https://example.org/iiif/3d/cameras/1", + "type": "PerspectiveCamera", + "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, + "fieldOfView": 50.0, + "near": 0.10, + "far": 2000.0 + }, "transform": [ { "type": "RotateTransform", @@ -94,13 +91,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno4/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -124,38 +120,42 @@ "type": "Annotation", "motivation": ["commenting"], "body": { - "type" : "TextualBody", - "value" : "

Right pterygoid hamulus

", - "format" : "text/html", - "language" : "en", - "position": { - "type": "SpecificResource", - "source": [{ - "id": "https://example.org/iiif/scene1", - "type": "Scene" - }], - "selector": [{ + "type": "TextualBody", + "value": "

Right pterygoid hamulus

", + "format": "text/html", + "language": ["en"], + "position": { + "id": "https://example.org/iiif/3d/anno3/body/position", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ + { "type": "PointSelector", "x": 0.040, "y": 0.0, "z": -0.066 - }], - "transform": [{ - "type": "RotateTransform", - "x": 0.0, - "y": 180.0, - "z": 0.0 - }] - } + } + ], + "transform": [ + { + "type": "RotateTransform", + "x": 0.0, + "y": 180.0, + "z": 0.0 + } + ] + } }, "target": { + "id": "https://example.org/iiif/3d/anno3/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", diff --git a/manifests/9_commenting_annotations/whale_comment_point_polygon.json b/manifests/9_commenting_annotations/whale_comment_point_polygon.json index 76e59a0..f45045b 100644 --- a/manifests/9_commenting_annotations/whale_comment_point_polygon.json +++ b/manifests/9_commenting_annotations/whale_comment_point_polygon.json @@ -24,13 +24,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno1/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -51,13 +50,12 @@ "format": "model/gltf-binary" }, "target": { + "id": "https://example.org/iiif/3d/anno2/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -68,45 +66,21 @@ ] } }, - { - "id": "https://example.org/iiif/3d/anno3", - "type": "Annotation", - "motivation": ["commenting"], - "bodyValue": "Right pterygoid hamulus", - "target": { - "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], - "selector": [ - { - "type": "PointSelector", - "x": 0.040, - "y": 0.063, - "z": -0.066 - } - ] - } - }, { "id": "https://example.org/iiif/3d/anno5", "type": "Annotation", "motivation": ["painting"], "body": { + "id": "https://example.org/iiif/3d/anno5/body", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/3d/cameras/1", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, - "fieldOfView": 50.0, - "near": 0.10, - "far": 2000.0 - } - ], + "source": { + "id": "https://example.org/iiif/3d/cameras/1", + "type": "PerspectiveCamera", + "label": {"en": ["Perspective Camera Pointed At Pterygoid Hamulus"]}, + "fieldOfView": 50.0, + "near": 0.10, + "far": 2000.0 + }, "transform": [ { "type": "RotateTransform", @@ -117,13 +91,12 @@ ] }, "target": { + "id": "https://example.org/iiif/3d/anno5/target", "type": "SpecificResource", - "source": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - ], + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "PointSelector", @@ -143,18 +116,45 @@ "type": "AnnotationPage", "items": [ { - "id": "https://example.org/iiif/3d/anno4", + "id": "https://example.org/iiif/3d/anno3", "type": "Annotation", "motivation": ["commenting"], - "bodyValue": "Foramen magnum", + "body": { + "type": "TextualBody", + "value": "Right pterygoid hamulus" + }, "target": { + "id": "https://example.org/iiif/3d/anno3/target", "type": "SpecificResource", - "source": [ + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, + "selector": [ { - "id": "https://example.org/iiif/scene1", - "type": "Scene" + "type": "PointSelector", + "x": 0.040, + "y": 0.063, + "z": -0.066 } - ], + ] + } + }, + { + "id": "https://example.org/iiif/3d/anno4", + "type": "Annotation", + "motivation": ["commenting"], + "body": { + "type": "TextualBody", + "value": "Foramen magnum" + }, + "target": { + "id": "https://example.org/iiif/3d/anno4/target", + "type": "SpecificResource", + "source": { + "id": "https://example.org/iiif/scene1", + "type": "Scene" + }, "selector": [ { "type": "WKTSelector", From cf0ac9e494fea62ce71c24d828cabeabc07434fa Mon Sep 17 00:00:00 2001 From: Julie Winchester Date: Wed, 20 May 2026 12:29:24 -0500 Subject: [PATCH 4/7] Remove empty manifests and add TODO.md to note their absence --- manifests/11_special/zz_infinite_canvas.json | 0 .../zz_comment_at_t_pointselector.json | 0 .../zz_compact_frag_syntax.json | 0 ...canvas_in_scene_refinedby_t_mediafrag.json | 0 manifests/TODO.md | 23 +++++++++++++++++++ 5 files changed, 23 insertions(+) delete mode 100644 manifests/11_special/zz_infinite_canvas.json delete mode 100644 manifests/8_scenes_with_duration/zz_comment_at_t_pointselector.json delete mode 100644 manifests/8_scenes_with_duration/zz_compact_frag_syntax.json delete mode 100644 manifests/8_scenes_with_duration/zz_video_on_iiif_canvas_in_scene_refinedby_t_mediafrag.json create mode 100644 manifests/TODO.md diff --git a/manifests/11_special/zz_infinite_canvas.json b/manifests/11_special/zz_infinite_canvas.json deleted file mode 100644 index e69de29..0000000 diff --git a/manifests/8_scenes_with_duration/zz_comment_at_t_pointselector.json b/manifests/8_scenes_with_duration/zz_comment_at_t_pointselector.json deleted file mode 100644 index e69de29..0000000 diff --git a/manifests/8_scenes_with_duration/zz_compact_frag_syntax.json b/manifests/8_scenes_with_duration/zz_compact_frag_syntax.json deleted file mode 100644 index e69de29..0000000 diff --git a/manifests/8_scenes_with_duration/zz_video_on_iiif_canvas_in_scene_refinedby_t_mediafrag.json b/manifests/8_scenes_with_duration/zz_video_on_iiif_canvas_in_scene_refinedby_t_mediafrag.json deleted file mode 100644 index e69de29..0000000 diff --git a/manifests/TODO.md b/manifests/TODO.md new file mode 100644 index 0000000..6714b77 --- /dev/null +++ b/manifests/TODO.md @@ -0,0 +1,23 @@ +# TODO: Missing Placeholder Manifests + +The following manifest files were removed because they were empty and caused the IIIF Presentation API 4.0 validator to report errors. It should be considered whether they should be implemented and added back in the future. + +## Removed Files + +### `8_scenes_with_duration/` + +- **`zz_comment_at_t_pointselector.json`** — A scene with duration demonstrating + a commenting annotation targeted at a specific time point using a PointSelector + with a temporal component. + +- **`zz_compact_frag_syntax.json`** — A scene with duration demonstrating the + compact fragment syntax for targeting temporal segments of a timed scene. + +- **`zz_video_on_iiif_canvas_in_scene_refinedby_t_mediafrag.json`** — A scene + containing a video on a IIIF Canvas, with a media fragment selector used to + refine the target by time (`t=`). + +### `11_special/` + +- **`zz_infinite_canvas.json`** — A manifest demonstrating an infinite canvas + use case (details TBD). From b1ec34ecad668f40af1277ff4d065a444b94a8ae Mon Sep 17 00:00:00 2001 From: Julie Winchester Date: Tue, 26 May 2026 10:16:59 -0500 Subject: [PATCH 5/7] Change 10_content_state to 10_activating_annotations --- .../README.md | 0 ...tronaut_comment_activating_motivation.json | 0 .../whale_comment_activating_annotation.json} | 2 +- .../astronaut_comment_scope.json | 208 ------------------ 4 files changed, 1 insertion(+), 209 deletions(-) rename manifests/{10_content_state => 10_activating_annotations}/README.md (100%) rename manifests/{11_special => 10_activating_annotations}/astronaut_comment_activating_motivation.json (100%) rename manifests/{10_content_state/whale_comment_scope_content_state.json => 10_activating_annotations/whale_comment_activating_annotation.json} (98%) delete mode 100644 manifests/10_content_state/astronaut_comment_scope.json diff --git a/manifests/10_content_state/README.md b/manifests/10_activating_annotations/README.md similarity index 100% rename from manifests/10_content_state/README.md rename to manifests/10_activating_annotations/README.md diff --git a/manifests/11_special/astronaut_comment_activating_motivation.json b/manifests/10_activating_annotations/astronaut_comment_activating_motivation.json similarity index 100% rename from manifests/11_special/astronaut_comment_activating_motivation.json rename to manifests/10_activating_annotations/astronaut_comment_activating_motivation.json diff --git a/manifests/10_content_state/whale_comment_scope_content_state.json b/manifests/10_activating_annotations/whale_comment_activating_annotation.json similarity index 98% rename from manifests/10_content_state/whale_comment_scope_content_state.json rename to manifests/10_activating_annotations/whale_comment_activating_annotation.json index bac5f3d..58dadd3 100644 --- a/manifests/10_content_state/whale_comment_scope_content_state.json +++ b/manifests/10_activating_annotations/whale_comment_activating_annotation.json @@ -1,6 +1,6 @@ { "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/whale_comment_scope_content_state.json", + "id": "https://example.org/iiif/3d/whale_comment_activating_annotation.json", "type": "Manifest", "label": { "en": ["Whale Cranium and Mandible with Dynamic Commenting Annotations and Custom Per-Anno Views"] }, "summary": { "en": ["Description TBA"] }, diff --git a/manifests/10_content_state/astronaut_comment_scope.json b/manifests/10_content_state/astronaut_comment_scope.json deleted file mode 100644 index 35a5070..0000000 --- a/manifests/10_content_state/astronaut_comment_scope.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/astronaut_comment_scope.json", - "type": "Manifest", - "label": { "en": ["Single Model with Comment Annotations and Custom Views Per Annotation"] }, - "summary": { "en": ["Viewer should render the model at the scene origin and two comment annotations, one targeting a point near the astronaut's glove and the other targeting a point near the astronaut's helmet. Each comment annotation has a specific camera position and view specified for it using content state scope for the annotation."] }, - "items": [ - { - "id": "https://example.org/iiif/scene1", - "type": "Scene", - "label": { "en": ["A Scene"] }, - "items": [ - { - "id": "https://example.org/iiif/scene1/page/p1/1", - "type": "AnnotationPage", - "items": [ - { - "id": "https://example.org/iiif/3d/anno1", - "type": "Annotation", - "motivation": ["painting"], - "body": { - "id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb", - "type": "Model", - "format": "model/gltf-binary" - }, - "target": { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - } - }, - { - "id": "https://example.org/iiif/3d/camera-anno-glove", - "type": "Annotation", - "motivation": ["painting"], - "behavior": ["hidden"], - "body": { - "id": "https://example.org/iiif/3d/cameras/1", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera for Glove"]}, - "lookAt": { - "id": "https://example.org/uuid/6799e7d1-89a1-4e76-bcb9-3c0c47065598", - "type": "PointSelector", - "x": 0.0, - "y": 2.0108470916748047, - "z": -0.012333005666732798 - } - }, - "target": { - "id": "https://example.org/uuid/48350b8f-be54-4a20-990e-80b596efbb36", - "type": "SpecificResource", - "source": { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - }, - "selector": [ - { - "id": "https://example.org/uuid/1a0f1b38-2ab7-4603-bfc3-353e77f18c93", - "type": "PointSelector", - "x": 0.0, - "y": 2.010847091674805, - "z": 9.11616179783789 - } - ] - } - }, - { - "id": "https://example.org/iiif/3d/camera-anno-helmet", - "type": "Annotation", - "motivation": ["painting"], - "behavior": ["hidden"], - "body": { - "id": "https://example.org/iiif/3d/cameras/2", - "type": "PerspectiveCamera", - "label": {"en": ["Perspective Camera for Helmet"]}, - "lookAt": { - "id": "https://example.org/uuid/80ace027-d43d-48f2-81dc-59bfed7b61cc", - "type": "PointSelector", - "x": 0.0, - "y": 2.0108470916748047, - "z": -0.012333005666732798 - } - }, - "target": { - "id": "https://example.org/uuid/ea4fcfb0-7341-48e3-a85d-d9c9f2bac5a0", - "type": "SpecificResource", - "source": { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - }, - "selector": [ - { - "id": "https://example.org/uuid/fa64be77-e766-49f0-a89c-cf1a6b7f5869", - "type": "PointSelector", - "x": 0.0, - "y": 2.010847091674805, - "z": 9.11616179783789 - } - ] - } - } - ] - } - ] - } - ], - "annotations": [ - { - "id": "https://example.org/iiif/scene1/page/p2/1", - "type": "AnnotationPage", - "items": [ - { - "id": "https://example.org/iiif/3d/anno2", - "type": "Annotation", - "motivation": ["commenting"], - "body": { - "id": "https://example.org/iiif/3d/anno2/bodies/glove", - "type": "TextualBody", - "value": "Glove", - "language": ["en"], - "format": "text/plain" - }, - "target": { - "id": "https://example.org/uuid/ab7f9b03-2c13-416c-85d8-13e4ef6d6a3b", - "type": "SpecificResource", - "source": { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - }, - "selector": [ - { - "id": "https://example.org/uuid/bfa9c562-3480-4605-aa60-fff02a1d6716", - "type": "PointSelector", - "x": 1.075, - "y": 1.894, - "z": 0.204 - } - ] - } - }, - { - "id": "https://example.org/iiif/3d/anno3", - "type": "Annotation", - "motivation": ["commenting"], - "body": { - "id": "https://example.org/iiif/3d/anno3/bodies/helmet", - "type": "TextualBody", - "value": "Helmet", - "language": ["en"], - "format": "text/plain" - }, - "target": { - "id": "https://example.org/uuid/8e6a68cd-a5be-4661-acc2-a373f2e749ae", - "type": "SpecificResource", - "source": { - "id": "https://example.org/iiif/scene1", - "type": "Scene" - }, - "selector": [ - { - "id": "https://example.org/uuid/7f940815-62f7-4d99-99e9-2f2a1ba0e7c8", - "type": "PointSelector", - "x": 0.006, - "y": 3.498, - "z": 0.703 - } - ] - } - }, - { - "id": "https://example.org/iiif/3d/activating/glove", - "type": "Annotation", - "motivation": ["activating"], - "target": { - "id": "https://example.org/iiif/3d/anno2", - "type": "Annotation" - }, - "body": { - "id": "https://example.org/iiif/3d/activating/glove/body", - "type": "SpecificResource", - "source": { - "id": "https://example.org/iiif/3d/camera-anno-glove", - "type": "Annotation" - }, - "action": ["show", "enable", "select"] - } - }, - { - "id": "https://example.org/iiif/3d/activating/helmet", - "type": "Annotation", - "motivation": ["activating"], - "target": { - "id": "https://example.org/iiif/3d/anno3", - "type": "Annotation" - }, - "body": { - "id": "https://example.org/iiif/3d/activating/helmet/body", - "type": "SpecificResource", - "source": { - "id": "https://example.org/iiif/3d/camera-anno-helmet", - "type": "Annotation" - }, - "action": ["show", "enable", "select"] - } - } - ] - } - ] -} From 030dea2c55bc409220f7963478fd465c8b4c3bce Mon Sep 17 00:00:00 2001 From: Julie Winchester Date: Tue, 26 May 2026 10:20:19 -0500 Subject: [PATCH 6/7] Rename GitHub action YML --- .github/workflows/{valiadte.yml => validate.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{valiadte.yml => validate.yml} (100%) diff --git a/.github/workflows/valiadte.yml b/.github/workflows/validate.yml similarity index 100% rename from .github/workflows/valiadte.yml rename to .github/workflows/validate.yml From 7de9f1d191cfdf936a1e210ac82104e1f62301c8 Mon Sep 17 00:00:00 2001 From: Julie Winchester Date: Tue, 26 May 2026 11:10:42 -0500 Subject: [PATCH 7/7] Fix more spec issues --- manifests/1_basic_model_in_scene/model_origin.json | 2 +- manifests/1_basic_model_in_scene/model_origin_bgcolor.json | 4 ++-- manifests/2_cameras/positioned_camera_lookat_anno.json | 6 ++++-- manifests/2_cameras/positioned_camera_lookat_point.json | 4 ++-- manifests/2_cameras/zz_choice_of_cameras.json | 2 +- .../multiple_lights_with_intensities_and_colors.json | 2 +- .../tipped_and_rotated_astronaut.json | 2 +- manifests/4_transform_and_position/tipped_astronaut.json | 2 +- .../astronaut_multilingual_comment.json | 2 +- .../whale_comment_point_polygon.json | 2 +- 10 files changed, 15 insertions(+), 13 deletions(-) diff --git a/manifests/1_basic_model_in_scene/model_origin.json b/manifests/1_basic_model_in_scene/model_origin.json index 4100be5..086ac8d 100644 --- a/manifests/1_basic_model_in_scene/model_origin.json +++ b/manifests/1_basic_model_in_scene/model_origin.json @@ -24,7 +24,7 @@ "format": "model/gltf-binary" }, "target": { - "id" : "https://example.org/iiif/scene1/page/p1/1", + "id" : "https://example.org/iiif/scene1", "type" : "Scene" } } diff --git a/manifests/1_basic_model_in_scene/model_origin_bgcolor.json b/manifests/1_basic_model_in_scene/model_origin_bgcolor.json index 2eed259..c38dc93 100644 --- a/manifests/1_basic_model_in_scene/model_origin_bgcolor.json +++ b/manifests/1_basic_model_in_scene/model_origin_bgcolor.json @@ -25,9 +25,9 @@ "format": "model/gltf-binary" }, "target": { - "id" : "https://example.org/iiif/scene1/page/p1/1", + "id" : "https://example.org/iiif/scene1", "type" : "Scene" - } + } } ] } diff --git a/manifests/2_cameras/positioned_camera_lookat_anno.json b/manifests/2_cameras/positioned_camera_lookat_anno.json index d110b77..212663a 100644 --- a/manifests/2_cameras/positioned_camera_lookat_anno.json +++ b/manifests/2_cameras/positioned_camera_lookat_anno.json @@ -48,12 +48,14 @@ "id": "https://example.org/iiif/scene1", "type": "Scene" }, - "selector": { + "selector": [ + { "type": "PointSelector", "x": 0.0, "y": 3.0, "z": -10.0 - } + } + ] } } ] diff --git a/manifests/2_cameras/positioned_camera_lookat_point.json b/manifests/2_cameras/positioned_camera_lookat_point.json index e82615d..123fd02 100644 --- a/manifests/2_cameras/positioned_camera_lookat_point.json +++ b/manifests/2_cameras/positioned_camera_lookat_point.json @@ -52,14 +52,14 @@ "type": "Scene" } , - "selector": + "selector": [ { "type": "PointSelector", "x": 0.0, "y": 3.0, "z": -10.0 } - + ] } } ] diff --git a/manifests/2_cameras/zz_choice_of_cameras.json b/manifests/2_cameras/zz_choice_of_cameras.json index 74fa241..11aaa53 100644 --- a/manifests/2_cameras/zz_choice_of_cameras.json +++ b/manifests/2_cameras/zz_choice_of_cameras.json @@ -68,7 +68,7 @@ "id": "https://example.org/iiif/specificresource/1", "type": "SpecificResource", "source": { - "id": "https://example.org/iiif/scene1/1", + "id": "https://example.org/iiif/scene1", "type": "Scene" }, "selector": { diff --git a/manifests/3_lights/multiple_lights_with_intensities_and_colors.json b/manifests/3_lights/multiple_lights_with_intensities_and_colors.json index 427ad49..3b85c76 100644 --- a/manifests/3_lights/multiple_lights_with_intensities_and_colors.json +++ b/manifests/3_lights/multiple_lights_with_intensities_and_colors.json @@ -1,6 +1,6 @@ { "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/model_origin.json", + "id": "https://example.org/iiif/3d/multiple_lights_with_intensities_and_colors.json", "type": "Manifest", "label": { "en": [ diff --git a/manifests/4_transform_and_position/tipped_and_rotated_astronaut.json b/manifests/4_transform_and_position/tipped_and_rotated_astronaut.json index d505430..7d85a47 100644 --- a/manifests/4_transform_and_position/tipped_and_rotated_astronaut.json +++ b/manifests/4_transform_and_position/tipped_and_rotated_astronaut.json @@ -1,6 +1,6 @@ { "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/model_origin.json", + "id": "https://example.org/iiif/3d/tipped_and_rotated_astronaut.json", "type": "Manifest", "label": { "en": ["glTF rotation property - IIIF transform demonstration"] }, "summary": { "en": ["Astronaut with rotation property defined in glb file and counteracting IIIF transform"] }, diff --git a/manifests/4_transform_and_position/tipped_astronaut.json b/manifests/4_transform_and_position/tipped_astronaut.json index f77342e..ea9cda0 100644 --- a/manifests/4_transform_and_position/tipped_astronaut.json +++ b/manifests/4_transform_and_position/tipped_astronaut.json @@ -1,6 +1,6 @@ { "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/model_origin.json", + "id": "https://example.org/iiif/3d/tipped_astronaut.json", "type": "Manifest", "label": { "en": ["glTF rotation property demonstration"] }, "summary": { "en": ["Astronaut with rotation property defined in glb file"] }, diff --git a/manifests/9_commenting_annotations/astronaut_multilingual_comment.json b/manifests/9_commenting_annotations/astronaut_multilingual_comment.json index 645946c..2c1789a 100644 --- a/manifests/9_commenting_annotations/astronaut_multilingual_comment.json +++ b/manifests/9_commenting_annotations/astronaut_multilingual_comment.json @@ -1,6 +1,6 @@ { "@context": "http://iiif.io/api/presentation/4/context.json", - "id": "https://example.org/iiif/3d/model_origin.json", + "id": "https://example.org/iiif/3d/astronaut_multilingual_comment.json", "type": "Manifest", "label": { "en": ["Single Model with Multilingual Comment Annotations"], diff --git a/manifests/9_commenting_annotations/whale_comment_point_polygon.json b/manifests/9_commenting_annotations/whale_comment_point_polygon.json index f45045b..bd646a0 100644 --- a/manifests/9_commenting_annotations/whale_comment_point_polygon.json +++ b/manifests/9_commenting_annotations/whale_comment_point_polygon.json @@ -157,7 +157,7 @@ }, "selector": [ { - "type": "WKTSelector", + "type": "WktSelector", "value": "POLYGON Z ((0 0.18 -0.23, -0.03 0.16 -0.23, -0.015 0.12 -0.23, 0.006 0.12 -0.23, 0.027 0.16 -0.230))" } ]