Skip to content

Commit 6d78476

Browse files
Update EXPERIMENTS.md
1 parent 95f5c02 commit 6d78476

File tree

1 file changed

+37
-24
lines changed

1 file changed

+37
-24
lines changed

demo/EXPERIMENTS.md

+37-24
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,60 @@
11
# Draft IIIF Manifest Experiments
22

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.
44

55
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.
1010

1111
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.
1313
* 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.
1414
* 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.
1616

1717
Experiment demos **COULD**:
1818
* 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.
1919

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-
2220
## Experiment Milestones
2321

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)
2543

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.
2845

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)
3047

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.
3349

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)
3551

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.
3853

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)
4055

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.
4357

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)
4559

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

Comments
 (0)