Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -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@main
with:
directory: manifests
version: "4.0"
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
{
"@context": "http://iiif.io/api/presentation/4/context.json",
"id": "https://example.org/iiif/3d/astronaut_comment_activating_motivation.json",
"type": "Manifest",
"label": { "en": ["Single Model with Comment Annotations and Custom Views Per Annotation Using Activating Motivation"] },
"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",
"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/model",
"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/cameras/1",
"type": "Annotation",
"motivation": ["painting"],
"behavior": ["hidden"],
"body": {
"id": "https://example.org/iiif/3d/cameras/1/body",
"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/cameras/2",
"type": "Annotation",
"motivation": ["painting"],
"behavior": ["hidden"],
"body": {
"id": "https://example.org/iiif/3d/cameras/2/body",
"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/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"
},
"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"
},
"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"
},
"action": ["show", "enable", "select"]
}
}
]
}
]
}
Loading
Loading