Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Features to 0.3 release #420

10 of 47 tasks
sofroniewn opened this issue Jul 15, 2019 · 4 comments
10 of 47 tasks

Features to 0.3 release #420

sofroniewn opened this issue Jul 15, 2019 · 4 comments


Copy link

@sofroniewn sofroniewn commented Jul 15, 2019

馃殌 Feature

This issue has some features moved over from our 0.2 release #301. They are considered more advanced topics that we'll likely be aiming to have explored or supported for our 0.3 release, which might be around Jun 1 2020.

Dims features:

  • Enable range mode for dims including slice / max_projection / crop (S/P/C)
  • Add play button to dimension sliders.
  • Support units in status update and scaler bar overlays
  • Add axes labels
  • Add axes shapes

File I/O:

  • Loading / saving shapes, points, vectors
  • Loading / saving surface
  • Loading custom image file types
  • Loading / saving entire viewer state to zarr


  • 3D rendering of big data + image pyramids
  • 3D interactivity / drawing
  • Support mixed 2D and 3D rendering
  • Editing in labels pyramid
  • Lazy rendering

1D plots

  • Scatter, line, histogram plots
  • Live updating, with links

Colors / clims:

  • For image layer add a clims histogram
  • Add a colorbar


  • Support for making animations.


  • Support layer borders #298
  • Support draggable / resizable layers #299
  • Add text layer #593
  • add events on finishing adding shapes / markers / labels / refresh etc


  • Support multiple canvas with linked cameras
  • For grid mode + coupled zoom
  • Minimap when highly zoomed in
  • For XY, XZ, YZ + 3D views for people doing volumetric imaging

Provenance logging

  • Undo / redo buttons
  • History feature
  • Macro generation

Qt / stylings

  • autogenerate _qt_properties / _qt_controls from function annotations
  • display loading icon during start-up
  • Make side panels draggable, dockable
  • Support title bar (with editable title and proper stylings)
  • Status bar shows values from multiple layers
  • Add edit boxes next to sliders to set min / max

Typing / schema

  • Add typing system for images / shapes
  • Adopt a metadata schema compatible with xarray for images / shapes

Remote access

  • remote notebooks
  • web viewing
  • remote data with dask
  • ability to launch from jupyterhub with jupyterlab

Standalone app

  • Installable app made with PyInstaller


  • add performance benchmarks
  • add better UI tests

Tutorials and docs

  • better demo datasets with pooch
  • more application tutorials
Copy link

@AhmetCanSolak AhmetCanSolak commented Sep 16, 2019

Hi @sofroniewn , how are you feeling about moving add play button to dimension sliders to 0.2.0 milestone? I can work on it after #520 and #496.

Copy link

@GenevieveBuckley GenevieveBuckley commented Oct 28, 2019

Does "Support mixed 2D and 3D rendering" have an issue I can follow?

I often have a 3D volume (fluorescence microscopy), and a 2D image (scanning electron microscopy) from the same sample. It'd be really awesome if I could overlay the two.

They generally have very different angles of view from the detector to the sample, as well as very different pixel sizes which makes things kinda tricky.

Copy link

@jni jni commented Oct 28, 2019

Does "Support mixed 2D and 3D rendering" have an issue I can follow?

A quick search didn't turn up any, so feel free to create one. @sofroniewn has already done some of the leg-work here by allowing layers to have their own dims (dimensions) model, separate from the global one, so I think this one is less of an implementation and more of a UX challenge.

Layers can also have their own scaling and translation. In terms of e.g. 3D rotations or skew, I don't think we have a great story there yet, but I'm not sure.

If you could provide a small sample dataset, that would help enormously with development.

Copy link
Contributor Author

@sofroniewn sofroniewn commented Jan 14, 2020

We're well underway moving towards these goals, and closing out some of the remaining issues from #301. I just wanted to highlight a couple key areas of work that we need to get done before we get close to having API stability, and having a solid foundation for plugins:

  • Use of colors / colormaps on models #782, #862

  • Points vs Text vs Annotation refactor and propagation of changes to Shapes, Vectors #858

  • 1D plot widgets + live updating #823

  • More interactivity on the base layer #772

  • Physical coordinates #763

  • Camera state / viewer serialization #852 and #851

  • Finalizing keybindings, mouse bindings, event systems #791 #793

  • Crop / project / slice mode #848, #7

  • Multicanvas support (linked ortho views, linked grid view) #760

  • FileIO for all layer types #379

  • Improve remote data support, remote dask server (?) #845 #654

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants