Repository navigation
Open
Labels
Data VisDecision neededDecision is required before this is ready to be scopedDecision is required before this is ready to be scopedcore dependencyMore needed to know before we can fully scope this work.More needed to know before we can fully scope this work.
Description
Part of #373 Live plotting:
Build a central canvas that supports rendering multiple overlapping, transparent data layers (e.g., raw STXM, webcam views, reconstructed images) with independent controls.
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
- Independent Layer Controls: The user can independently toggle visibility, opacity, and colormaps for each rendering layer.
- Stacking Context: Transparent layers overlay accurately on top of each other without affecting background layers.
Tasks
base on the goals, deduce the tasks required. check them off once they're done
Caution
Decision needed
- Look into what libraries already exist and what data is required, some possibility ( Unity, Plotly.js, uPlot etc) but all of which will involve some kind of WebGL.
- Check what diamond plans are for handling data heavy possess on the web.
- How are we generating the 3d model from our 2d input, Is workflow going to output a 3d model for laminography?
- What are we going to do with 3d model?
- Would point cloud make sense? (Three.js, potree, deck.gl VTK.Js - this is use in medical imaging)
- Layer Control UI panel: Design and implement side panels with opacity sliders 0-100, colormap dropdowns, and adjustable intensity range limits.
- Canvas Blending: Build hardware-accelerated canvas composition supporting transparent layer blending.
- Dynamic Level of Detail: Data send to the UI should be scaled depend the level of zoom(detail) the user required.
- Spatial view culling: Data that fall outside field of view should not be send or rendered.
Metadata
Metadata
Assignees
Labels
Data VisDecision neededDecision is required before this is ready to be scopedDecision is required before this is ready to be scopedcore dependencyMore needed to know before we can fully scope this work.More needed to know before we can fully scope this work.
Activity
[-]Build a multi-layer plotting window supporting independent opacity, colormap, and dynamic range settings per layer.[/-][+]Multi-Layer Canvas[/+]NKatti2011 commentedon Sep 16, 2026
Below include notes from meeting with @EmsArnold and others.
Scope
3D is out of scope for this issue. Generating a 3D model from 2D input is an open
question and should be tracked separately. Before raising that issue we
need an answer to: how much 3D do we actually need during acquisition, as opposed to
post-hoc analysis?
Open questions
target frame rates, or is 2D canvas compositing sufficient for the layer counts we
expect? This interacts with the canvas throttling/reduction item in P99 Acquisition & Visualisation Interface Overhaul #373, and should be
part of the Davidia evaluation.
To Scope
apps/visr/src/components/tomography/VolumeRenderer.tsx- Tom Kane best to ask about this.