Skip to content

Conversation

@cornhundred
Copy link
Collaborator

No description provided.

@cornhundred
Copy link
Collaborator Author

cornhundred commented Dec 4, 2025

Overview of yearbook_opus Branch Changes

Files Changed

File Changes Description
js/viz/yearbook.js +850 lines (new) Main visualization logic
js/ui/yearbook_ui.js +650 lines (new) Control panel UI with pagination
js/deck-gl/core/yearbook_viewports.js +208 lines (new) Multi-viewport grid & discontiguous tile loading
src/celldega/viz/widget.py +206 lines Python Yearbook class
js/deck-gl/layers/image_layers.js +71 lines Per-portrait image layer support
js/widget.js +59 lines Widget routing for Yearbook
src/celldega/__init__.py +2 lines Export Yearbook
src/celldega/viz/__init__.py +2 lines Export Yearbook

Key Features Implemented

  1. Yearbook Widget - Portrait grid visualization of selected cells

    • Configurable num_rows, num_cols, portrait_size_um
    • Centers each portrait on a specific cell
  2. Multi-Viewport Architecture - Each portrait is a separate OrthographicView

    • Synced zoom across all portraits (no panning)
    • layerFilter ensures per-portrait image layers render only in their viewport
  3. Discontiguous Tile Loading - Loads only tiles needed for visible portraits

    • Shared cell/transcript/path layers across all viewports
    • Per-portrait image layers with extent restrictions
  4. Pagination - Navigate through cells when more than grid capacity

    • Debounced to prevent rapid-click issues
    • UI stays in sync with actual displayed content
  5. Control Panel - Similar to Landscape widget

    • Gene bars and cell bars based on visible transcripts/cells
    • Image layer toggles, cell/transcript visibility sliders

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants