Skip to content

[Feature] Robust image visualization service for copilot-driven image delivery #6

@pskeshu

Description

@pskeshu

Description

Build a dedicated visualization service that delivers images on-demand to users based on copilot orchestrator requests. Images are delivered via file system to be viewed in external tools (e.g., napari, ImageJ, vi notes).

Current State

  • VisualizationManager uses subprocess-based matplotlib/napari
  • Images saved to disk, optional viewer launch
  • No structured delivery mechanism

Requirements

1. File-Based Image Delivery

  • Organized output directory structure for user review
  • Automatic naming conventions (embryo_id, timepoint, timestamp)
  • Support for 2D images and 3D volume projections (MIP, orthogonal slices)
  • Multiple formats: TIFF (full data), JPEG (preview), PNG (annotated)

2. Copilot Integration

  • API for copilot to request "send this image to user"
  • Support for annotations (embryo labels, ROIs, measurements) burned into exports
  • Comparison exports (side-by-side, montages, time series strips)

3. Structured Output Organization

D:\Gently\visualization_output\
├── latest/              # Symlinks/copies to most recent images per embryo
├── by_embryo/
│   ├── embryo_001/
│   │   ├── timepoint_001.tiff
│   │   └── timepoint_001_annotated.png
│   └── ...
├── comparisons/         # Side-by-side, montages
└── exports/             # User-requested exports

4. Image Queue Management

  • Queue images for batch export
  • Manifest file listing pending/exported images
  • Integration with external viewers via file watching

Technical Approach

  • Enhance ImageManager with structured export capabilities
  • Create VisualizationExporter class for formatted outputs
  • Use file system watchers for "hot folder" workflow
  • Optional: napari plugin that watches output directory

Key Files

  • gently/agent/visualization.py
  • gently/agent/image_manager.py
  • New: gently/agent/visualization_exporter.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions