Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to target a Scene? #2253

Open
tomcrane opened this issue Jul 14, 2023 · 10 comments
Open

How to target a Scene? #2253

tomcrane opened this issue Jul 14, 2023 · 10 comments
Labels
3d presentation Ready-for-Eds Editorial changes ready for Editorial review

Comments

@tomcrane
Copy link
Contributor

Given a Scene (#2251) and its coordinate system (#2252), what do annotation target properties look like (both painting and other kinds of annotation)?

An annotation or Range that targets a particular region of a Scene could use a PointSelector with floating point x, y and z properties, as well as a time point for Scenes with duration:

    "target": [
        {
            "type": "SpecificResource",
            "source": [
                {
                    "id": "https://example.org/iiif/scene1/page/p1/1",
                    "type": "Scene"
                }
            ],
            "selector": [
                {
                    "type": "PointSelector",
                    "x": 100.0,
                    "y": 100.0,
                    "z": 0.0,
                    "t": 180.0
                }
            ]
        }
    ]

For painting

This selector would place a model at 100,100,0 - but the model is not a point; what part of the model gets placed at that point?

Suggestion from 3D TSG and Napoli workshop (from IIIF/3d#11 (comment)) is that

“the 0-point "local" origin of the model should align with the "global" position coordinate specified.”

What does the selector look like if the target is a particular time interval (on a Scene with a duration property?) The above example targets a time point but what’s the syntax for removing the annotation at 240 seconds?

What about annotation targets that are NOT POINTS? (this may be a separate issue)

See IIIF/3d#14 (comment)
Do we want to tackle that now?

@azaroth42
Copy link
Member

Agree that the point selector selects a particular point in space and time. I think we need a point+duration selector to paint the model at that point, with a start and end time.

@azaroth42
Copy link
Member

Propose that the defaults for x,y and z are 0 if not specified, and thus a PointSelector without any of them is just the origin.

Propose that the default for t is the entire duration of the canvas, rather than t=0.

@tomcrane
Copy link
Contributor Author

@tomcrane
Copy link
Contributor Author

tomcrane commented Jan 30, 2024

Just to clarify, the missing example would be a duration, which uses the same media fragment syntax as current Presentation 3:

NB this example is wrong for t, see below

                "selector": [
                {
                    "type": "PointSelector",
                    "x": 100.0,
                    "y": 100.0,
                    "z": 0.0,
                    "t": 10.5,37.0
                }

@gjcope
Copy link

gjcope commented Jan 30, 2024

Default t=0 seems preferable to me. I'm also unsure what meaning t has with scene in scene annotation. Especially if t differs.

@azaroth42
Copy link
Member

t=0 would mean that the annotation targeted only the very first instant of the Scene (or Canvas), and as soon as the duration started playing, it would disappear as no longer in scope.

@gjcope
Copy link

gjcope commented Jan 30, 2024

Got it. So how is the starting time point for the annotation defined? Say I want to annotate a model at 0.5s of its 1s duration and then play the remainder of the duration.

@tomcrane
Copy link
Contributor Author

t in the PointSelector would only be valid if the Scene has a duration property.

I think my example is wrong, I will update it. t does not conform to the Media Fragments spec here? My t above is a duration not a Point.

The class is PointSelector not DurationSelector (or more generally ExtentSelector) but how would you combine a spatial point with a time duration ?

@azaroth42
Copy link
Member

Let's kick the semantics of t out to a separate issue, I think we all agree on the generalities.

@tomcrane
Copy link
Contributor Author

This is the way to say "At 100,100,0 from 45 seconds to 90 seconds"

"selector": {
      "type": "PointSelector",
      "x": 100.0,
      "y": 100.0,
      "z": 0.0
      "refinedBy": {
        "type": "FragmentSelector",
        "value": "t=45,90"
      }
    }

@tomcrane tomcrane added the Ready-for-Eds Editorial changes ready for Editorial review label Jan 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3d presentation Ready-for-Eds Editorial changes ready for Editorial review
Projects
None yet
Development

No branches or pull requests

3 participants