DiamondLightSource / DiamondLightSource/sm-bluesky

Live 2D STXM Data Streaming

Open
#375 0 comments 0 reactions 0 assignees View on GitHub
core dependency Data Vis Decision needed
Dominant language
Python
Stars
0
Forks
0
Avg merge
2d 3m
Merged PRs (30d)
8

Description

Part #373 Live plotting:

Connect the Web plotting interface to the live scan event stream to display STXM data in real-time. This replaces the manual Jupyter Notebook and BlueSky plotting workaround [here](https://github.com/DiamondLightSource/sm-bluesky/blob/main/demo/p99/showcase_experment.ipynb). Making it available in p99.diamond.ac.uk webUI.

> [!NOTE]
> These will be stream data, e.g. (data that are small and ready available to the webUI.), These will be in the format of json/dictionary.

### 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
- [ ] Live Visual Population: The user can view the 2D STXM scan data populating the central canvas in real-time during an active acquisition
- [ ] Dynamic Plot Updating: The UI updates the scan grid continuously without requiring page refreshes or halting the client interface

### Tasks
base on the goals, deduce the tasks required. check them off once they're done
> [!CAUTION]
> ### Decision needed
> - [ ] Blueapi CLI callback, RabbitMQ, title or NEXS file.
- [ ] Davidia Integration Evaluation: Assess if Davidia should be utilized as the core plotting library for streaming 2D arrays
- [ ] Data Ingestion: Connect the UI canvas component to a data brokers.
- [ ] Live Heatmap Rendering: Implement high-performance rendering logic to map incoming 2D spatial coordinates $(x, y)$ and intensity values onto a dynamic heatmap grid.

### Related Resources
any images/gifs, mockups/wireframes that would aid the development should be listed here
MockUp : `link to mockup`
Coda doc: `link to coda`
**Additional context**
Add any other context or screenshots about the feature request here.

Contributor guide

Open the contributing guide

Research direction

Start by reading issue #373 and the referenced demo/p99/showcase_experment.ipynb to understand the existing plotting workaround. Resolve the decision between the BlueAPI CLI callback, RabbitMQ, title or NEXS file, then evaluate Davidia and the data broker connection for the web UI. Done means the central canvas renders incoming 2D STXM data continuously during an active acquisition without page refreshes.

Written by the indexing model from the issue text.

Assessment

Tech stack
json, jupyter-notebook, python, rabbitmq
Domain
data-visualization, frontend, stream-processing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.