Roadmap 2025
kushalkolar opened this issue ยท 0 comments
kushalkolar commented
This is our roadmap for 2024 and 2025. The goal is that when this roadmap is complete, or nearly complete, we will have a near-stable beta v1.0.0 release of fastplotlib. The roadmap is subject to change as the project grows and evolves, but we think that the items laid out here are the core components for fastplotlib to become a fully fledged and unique scientific plotting library.
We are always looking for new contributors! Items marked with a ๐ข are easy first PRs for newcomers with all levels of experience! If you have other ideas, or better ideas, feel free to open an issue or PR ๐ !
API basics
- module reorganization, #53
- arrive at a stable API for a v1.0.0 beta, related #121
- Use matplotlib-like names for some aspects of the API, like
vmin
vmax
for familiarity #88 - ๐ข #384
- UI elements, explore pyimgui, kivy, etc. Will probably have to be implemented in
pygfx
Layouts
- Arbitrary subplot sizes and positions, with resizable separators between them, some ideas in #315
- pyimgui might help with this too
- Add a row or column to existing Gridplot
Graphics
- #129
- better handling of color args, done in #78
-
Heatmap
needs to work with larger array, see pygfx/pygfx#360 - #389
- #487
- Some selector tools could just inhereit from this and
BaseSelector
- Some selector tools could just inhereit from this and
- 3D Graphics
- Polyhedron
- Ellipsoid
- Volume images #50
- Arbitrary polyhedrons and surface meshes
- Unfirom API for non-orthogonal slicing for all 3D graphics
- Graphic Collections
- LineCollection
- LineStack
- PolygonCollection
Interactivity tools and events
- interactivity to define events between Graphics #93
- more complex interactivity defined in in #100
- Selectors #142
- LinearSelector
- LinearRegionSelector
- ๐ข RectangleRegionSelection
- PolygonRegionSelection
- Volume selector tools, cubes and slices
- #456
- ๐ข #380
More Text control
- Decide on API
- Size of text for plot titles, etc.
Subplot/View area
- refactor
Subplot
, create a new classViewArea
which is used by bothSubplot
andDockedViewport
#30 - Axes with ticks and labels, waiting for pygfx/pygfx#492
- #80
- "Docked" viewports #30
- ๐ข toolbar buttons to change controllers and camera FOV for subplots, maybe an "advanced" options area with even more toolbar-accessbile configurations (theme, log axes, etc.).
Things in docked viewports
- Lineplot that displays histogram with LinearRegionSelector to adjust vmin vmax for image data
- #403
Widgets
- #51
- Do we need more types of widgets? Line plots? Scatter plots? The
ImageWidget
is due to the complex n-dimensional nature of imaging data.- I think the answer to this is something like a seaborn-type API, higher level than
graphics
, related #395- neurowidgets library is also kinda related but tailored to neuroscience
- I think the answer to this is something like a seaborn-type API, higher level than
- #149
Test suite
- basics framework to run desktop examples and notebook examples with screenshots
- ๐ข notebook tests for everything
- meta issue - #229
- emulate Events #374
- selectors
- think about #362
Docs, tutorials and examples
- basic docs, #49
- #316
- #292
- #486
- ๐ข more docs
- ๐ข #339
- ๐ข tutorials: the basics within jupyter, using in ipython with
%gui qt
, use to make Qt applications- domain specific tutorials, within this repo so that it's maintained under one CI roof
- neuroscience with pynapple with a smaller dataset, or stream from DANDI, adapt from: https://github.com/fastplotlib/fastplotlib-sfn2023
- deeplabcut and other behavior tools
- developmental biology
- general fluorescence microscopy
- astronomy
- displaying live data streams from acquisition devices using zmq or multiprocessing
Project Website
- home page for newcomers to learn about us, how to contribute, our documentation, and community involvement
- host our previous talks/tutorials
pygfx wishlist:
- LOD - Level of detail
- render bundles