Skip to content

Interactive ROI Selection Tool #380

Open

Description

@Relm-Arrowny

Part of #373 Live plotting:

Build an interactive canvas drawing tool that allows users to select a Region of Interest (ROI) and automatically map those coordinate back to scan plan input fields

Goals

Acceptance criteria : What journeys should the user be able to complete to consider your feature done
Be as specific as you can, check them off once they work. Add more if you find more requirements during development. Issue should only be considered done after all of them are checked

  • Canvas Drawing Interaction: The user can draw a selection box on the plotting canvas
  • Form Auto-fill: The physical coordinates corresponding to the drawn ROI bounds automatically populate the scan range input fields.

Tasks

base on the goals, deduce the tasks required. check them off once they're done

Note

This is heavily depend on the core infrastructure direction.

  • Davidia ROI Integration: Investigate if Davidia's built-in region selection tools can be leveraged for this.
  • Interactive Canvas Drawing: Build box/polygon drawing tools on top of the active canvas layer.
  • Inverse Matrix Mapping: Map drawn back to physical stage using the inverse transformation matrix.

Activity

  1. changed the title [-]Add ROI interactive selection tool to auto-fill scan regions.[/-] [+]Interactive ROI Selection Tool[/+] on Sep 9, 2026
  2. NKatti2011 commented on Sep 16, 2026

    @NKatti2011
    Collaborator

    Includes notes from a meeting with David Burn, 15/09/2025 and @EmsArnold

    Notes

    • An ROI produces one reconstruction covering the whole ROI, but can produce image
      but the user likely only interested in the reconstruction.
    • Applying a transformation from the UI will move motors. This is not a display-only
      operation. User-supplied offsets translate into real-space transformations and changes
      to motor positions.

    Because UI offsets become motor moves, this tool:

    • validation against stage travel before anything moves
    • a dry-run step

    Needs deciding: does an ROI-driven move
    go through the queue, or is there a separate direct path for interactive moves?

    Priority stage

    Declared implicitly by which coordinate frame the user has selected on the canvas drop down, rather than
    configured separately.

    Scope to define

    • ROI validation against stage travel. Presumably this goes through the matrix chain,
      but nobody has confirmed how, and it needs an owner.
    • Inverse mapping (pixel to real space) belongs in the shared maths package described
      in #379, not in the Davidia server.
      lives and whether that is the right home for it.
    • Coordinate and offset metadata in Tiled. see the persistence note in Reference Frame Coordinate Transformations #379.
    • SWIFT is also producing trajectory maths and controls logic. Do we consume that or
      duplicate it?
    • The UI needs to know which axes the user has access to, in order to build a trajectory
      from them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Data Viscore dependencyMore needed to know before we can fully scope this work.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions