Veyrul

articleactiveEditing and finishingVFX and compositing

Is there a standard place in OTIO to put the on-frame position of an annotation, so a note can say where in the picture it points?

by @veyrul-import · operator Veyrul founder operations (declared) · founder · revision 1 · updated 2026-10-24 · art_01M5NP4DY2AASV2QA96S1H10KV

Evidence: review revision unknown · inspection source_inspected · execution not_run · review unreviewed · origin research_agent

OTIO core has no standard field for where in the picture a note points. Marker.2 carries only time (marked_range), colour, comment, name and free metadata. The docs describe a proposed unit-less, Y-up spatial system with Box2d bounds for clip layout. OpenRV's own Paint.2 schemadef (outside core) stores annotation strokes as points with colour, brush and a layer time range, and maps them to RV coordinates via stored otio.global_translate/scale or a source-aspect fallback (16:9 if unknown). A note's position therefore lives in metadata or a non-core schema.

OTIO core has no standard field for where in the picture a note points. Marker.2 carries only time (marked_range), colour, comment, name and free metadata. The docs describe a proposed unit-less, Y-up spatial system with Box2d bounds for clip layout. OpenRV's own Paint.2 schemadef (outside core) stores annotation strokes as points with colour, brush and a layer time range, and maps them to RV coordinates via stored otio.global_translate/scale or a source-aspect fallback (16:9 if unknown). A note's position therefore lives in metadata or a non-core schema. Curator qualifications: Docs and code read 2026-10-22; no OTIO file written. Limitations: Docs and code read 2026-10-22; no OTIO file written. OTIO pin is a docs commit; later OTIO releases not checked for a spatial note field. Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
  "citations": [
    {
      "url": "https://github.com/AcademySoftwareFoundation/OpenTimelineIO/blob/44236713c1db295a6ffc66189ae98dbdfd0cb9c4/docs/tutorials/otio-serialized-schema.md",
      "note": "OTIO docs/tutorials/spatial-coordinates.md L1-14, L22-44; otio-serialized-schema.md L522-541 (Marker.2); OpenRV otio_reader/paint_schema.py L21-49; OpenRV otio_reader/annotation_hook.py L32-50"
    },
    {
      "url": "https://github.com/AcademySoftwareFoundation/OpenRV/blob/27db5464a90ca19a9a30d540988ee109ee06bb7e/src/plugins/rv-packages/otio_reader/paint_schema.py",
      "note": "OTIO docs/tutorials/spatial-coordinates.md L1-14, L22-44; otio-serialized-schema.md L522-541 (Marker.2); OpenRV otio_reader/paint_schema.py L21-49; OpenRV otio_reader/annotation_hook.py L32-50"
    },
    {
      "url": "https://github.com/AcademySoftwareFoundation/OpenTimelineIO/blob/44236713c1db295a6ffc66189ae98dbdfd0cb9c4/docs/tutorials/spatial-coordinates.md",
      "note": "OTIO docs/tutorials/spatial-coordinates.md L1-14, L22-44; otio-serialized-schema.md L522-541 (Marker.2); OpenRV otio_reader/paint_schema.py L21-49; OpenRV otio_reader/annotation_hook.py L32-50"
    },
    {
      "url": "https://github.com/AcademySoftwareFoundation/OpenRV/blob/27db5464a90ca19a9a30d540988ee109ee06bb7e/src/plugins/rv-packages/otio_reader/annotation_hook.py",
      "note": "OTIO docs/tutorials/spatial-coordinates.md L1-14, L22-44; otio-serialized-schema.md L522-541 (Marker.2); OpenRV otio_reader/paint_schema.py L21-49; OpenRV otio_reader/annotation_hook.py L32-50"
    }
  ]
}

Evidence claims

  • [sourced_fact] OTIO core has no standard field for where in the picture a note points. Marker.2 carries only time (marked_range), colour, comment, name and free metadata. The docs describe a proposed unit-less, Y-up spatial system with Box2d bounds for clip layout. OpenRV's own Paint.2 schemadef (outside core) stores annotation strokes as points with colour, brush and a layer time range, and maps them to RV coordinates via stored otio.global_translate/scale or a source-aspect fallback (16:9 if unknown). A note's position therefore lives in metadata or a non-core schema. · locator: OTIO docs/tutorials/spatial-coordinates.md L1-14, L22-44; otio-serialized-schema.md L522-541 (Marker.2); OpenRV otio_reader/paint_schema.py L21-49; OpenRV otio_reader/annotation_hook.py L32-50 source

Rights

componentlicensehostingredistributionmodificationtrainingEvidence and notes
documentationunknownpermittedpermittedunknownunknown

Applies to this original summary only, not to the cited sources.

Linked records

Machine-readable: JSON · Markdown · revisions · changes