|
1 | 1 | # Draft IIIF Manifest Experiments
|
2 | 2 |
|
3 |
| -As part of the work of the IIIF 3D TSG, it is necessary to create experimental demos that display and contextualize 3D content using draft manifests that represent potential expansions to the IIIF Presentation API. Ideally, these experiments should be implemented across a wide range of viewers and with 3D frameworks. The goal of these experiments is to determine and find issues, stressors, and "pain points" with the manifest drafts as they are expressed, so that the manifests can be modified and updated as needed to help resolve these issues. This document describes acceptance criteria for these demo experiments, laying out a series of milestones of increasing complexity for demo creators to implement. |
| 3 | +As part of the work of the IIIF 3D TSG, it is necessary to create experimental demos that display and contextualize 3D content using draft manifests that represent potential expansions to the IIIF Presentation API. Ideally, these experiments should be implemented across a wide range of viewers and 3D frameworks. The goal of these experiments is to determine and find issues, stressors, and "pain points" with the manifest drafts as they are expressed, so that the manifests can be modified and updated as needed to help resolve these issues. This document describes acceptance criteria for these demo experiments, laying out a series of milestones of increasing complexity for demo creators to implement. |
4 | 4 |
|
5 | 5 | Experiment demos **MUST**:
|
6 |
| -* Satisfy one or more of the functionality milestones described below. |
7 |
| -* Load one or more draft IIIF manifests as specified by a milestone. |
8 |
| -* Load, transform, position, and contextualize 3D model(s) and other resources (potentially lights, cameras, label annotations, 2D content, etc.) in 3D space specified by the draft IIIF manifest. |
9 |
| -* Provide a default view and lighting conditions so that end users of the demo can quickly assess whether the demo satisfies acceptance criteria: |
| 6 | +* Satisfy one or more of the functionality milestone groups described below. |
| 7 | +* Load one or more draft IIIF manifests as specified by a milestone group. |
| 8 | +* Load, transform, position, and contextualize 3D model(s) and other resources (potentially lights, cameras, label annotations, 2D content, etc.) in 3D space as specified by the draft IIIF manifest. |
| 9 | +* Provide a default view and lighting conditions so that end users of the demo can quickly assess whether the demo satisfies acceptance criteria. |
10 | 10 |
|
11 | 11 | Experiment demos **SHOULD**:
|
12 |
| -* Load manifest and asset files from GitHub IIIF/3D repository URLs. Manifests and assets may be updated over time, and it is helpful if demos do not need to be updated each time this occurs. This may not always be feasible for all frameworks and viewers, though. |
| 12 | +* Load manifest and asset files from GitHub IIIF/3D repository URLs. Manifests and assets may be updated over time, and it is helpful if demos do not need to be updated each time this occurs. This may not always be feasible for all frameworks and viewers, though. |
13 | 13 | * Be expressed in CodeSandbox, so that we have a consistent and easily modifiable environment in which to iterate on demos and to demonstrate functionality to end users. Again, this may not be feasible in all cases.
|
14 | 14 | * Implement a `textarea` input that contains the loaded draft IIIF manifest content, and which allows users to modify manifest content interactively, loading new viewer state dynamically from the modified manifest content on form submission. Having this functionality allows users to quickly modify parameters of the manifest and observe their impact on the demo, which among other benefits aids in diagnosing inconsistencies between demos.
|
15 |
| -* Satisfy previous milestone manifests in a backwards compatible fashion. The milestone manifests and acceptance criteria generally increase in complexity, and a demo for milestone 2 should ideally also be able to support milestone 1. |
| 15 | +* Satisfy previous milestone manifests in a backwards compatible fashion. The milestone manifests and acceptance criteria generally increase in complexity, and a demo for milestone group 2 should ideally also be able to support milestone group 1. |
16 | 16 |
|
17 | 17 | Experiment demos **COULD**:
|
18 | 18 | * Load other IIIF manifests from URLs, with the milestone manifest as the default. This would allow users to easily try different manifests against a demo.
|
19 | 19 |
|
20 |
| -Note: Currently (as of 1/24/2024), the position values included in the draft manifests are dummy values. They WILL be changed to more realistic values for the astronaut asset once experiments begin to be implemented. |
21 |
| - |
22 | 20 | ## Experiment Milestones
|
23 | 21 |
|
24 |
| -### Milestone 1: Place Model in 3D Scene |
| 22 | +Manifests are separated into numbered milestone groups, where each new group introduces a new behavior or resource type. The groups are described below, and a link to the manifests associated with the group is provided. Any manifest URL in this GitHub repo can be converted into a fetchable manifest URL by replacing the `https://github.com/IIIF/3d/blob/` at the beginning of the URL with `https://raw.githubusercontent.com/IIIF/3d/`. For example, the GitHub URL `https://github.com/IIIF/3d/blob/main/manifests/1_basic_model_in_scene/model_origin.json` becomes `https://raw.githubusercontent.com/IIIF/3d/main/manifests/1_basic_model_in_scene/model_origin.json`. Demos can use the fetchable URL to load the manifest directly from the web. |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +### Milestone 1: [Place Model in 3D Scene](https://github.com/IIIF/3d/tree/main/manifests/1_basic_model_in_scene) |
| 27 | + |
| 28 | +Manifests in this group place a single model in a 3D scene. |
| 29 | + |
| 30 | +### Milestone 2: [Cameras](https://github.com/IIIF/3d/tree/main/manifests/2_cameras) |
| 31 | + |
| 32 | +Manifests in this group place one or more cameras in association with a model in a 3D scene. |
| 33 | + |
| 34 | +### Milestone 3: [Lights](https://github.com/IIIF/3d/tree/main/manifests/3_lights) |
| 35 | + |
| 36 | +Manifests in this group place one or more lights along with camera(s) and a model in a 3D scene. |
| 37 | + |
| 38 | +### Milestone 4: [Transform and Position](https://github.com/IIIF/3d/tree/main/manifests/4_transform_and_position) |
| 39 | + |
| 40 | +Manifests in this group transform (translate, rotate, and/or scale) models and position them at specific coordinates with a 3D scene. |
| 41 | + |
| 42 | +### Milestone 5: [Nesting Canvases and Scenes within Scene](https://github.com/IIIF/3d/tree/main/manifests/5_nesting) |
25 | 43 |
|
26 |
| -Manifest: https://github.com/IIIF/3d/raw/main/demo/json/manifests/model_origin.json |
27 |
| -Acceptance criteria: Astronaut asset is positioned at origin of 3D scene. |
| 44 | +Manifests in this group use multiple scenes or one or more canvases along with a scene and nest canvases or scenes within an overall inclusive scene. |
28 | 45 |
|
29 |
| -### Milestone 2: Place Model at Position in 3D Scene |
| 46 | +### Milestone 6: [2D Canvases in Scenes](https://github.com/IIIF/3d/tree/main/manifests/6_2d_canvases_in_scene) |
30 | 47 |
|
31 |
| -Manifest: https://github.com/IIIF/3d/raw/main/demo/json/manifests/model_position.json |
32 |
| -Acceptance criteria: Astronaut asset is positioned at specified coordinates of 3D scene. |
| 48 | +Manifests in this group expand on milestone group 5 by placing 2D canvases in scenes in more advanced ways. |
33 | 49 |
|
34 |
| -### Milestone 3: Place Scale-Transformed Model in 3D Scene |
| 50 | +### Milestone 7: [Excluding Elements from Presentation](https://github.com/IIIF/3d/tree/main/manifests/7_excluding_model_features) |
35 | 51 |
|
36 |
| -Manifest: https://github.com/IIIF/3d/raw/main/demo/json/manifests/model_transform_scale.json |
37 |
| -Acceptance criteria: Astronaut asset is transformed to specified scale and positioned at origin of 3D scene. |
| 52 | +Manifests in this group exclude elements like cameras and lights from being actively displayed in a 3D scene. |
38 | 53 |
|
39 |
| -### Milestone 4: Place Scale-Transformed Model at Position in 3D Scene |
| 54 | +### Milestone 8: [Scenes with Duration](https://github.com/IIIF/3d/tree/main/manifests/8_scenes_with_duration) |
40 | 55 |
|
41 |
| -Manifest: https://github.com/IIIF/3d/raw/main/demo/json/manifests/model_transform_scale_position.json |
42 |
| -Acceptance criteria: Astronaut asset is transformed to specified scale and positioned at specified coordinates of 3D scene. |
| 56 | +Manifests in this group feature scenes and scene elements with duration, turning elements on and off at certain time durations for the Scene. |
43 | 57 |
|
44 |
| -### Milestone 5: Place Scaled and Translated Model at Position in 3D Scene |
| 58 | +### Milestone 9: [Supplementing Annotations](https://github.com/IIIF/3d/tree/main/manifests/9_supplementing_annotations) |
45 | 59 |
|
46 |
| -Manifest: https://github.com/IIIF/3d/raw/main/demo/json/manifests/model_transform_translate_scale_position.json |
47 |
| -Acceptance criteria: Astronaut asset is transformed to specified scale, translated, and positioned at specified coordinates of 3D scene. |
| 60 | +Manifests in this group feature supplementing annotations describing the 3D scene. |
0 commit comments