Open
Description
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, module reorganization #53
- arrive at a stable API for a v1.0.0 beta, related Discuss API stability #121
- Use matplotlib-like names for some aspects of the API, like
vmin
vmax
for familiarity graphics refactor, again #88 - 🟢 Use qtpy so we can use PySide etc #384
- UI elements, using imgui-bundle and
ImguiRenderer
withwgpu
Layouts
- Customizable Figure layouts #315
- Add a row or column to existing Gridplot
Graphics
- Support RGB image arrays with
ImageGraphic
#129 - better handling of color args, done in indexable graphic attributes #78
-
Heatmap
needs to work with larger array, see Handling large images pygfx/pygfx#360 - consider descriptor pattern for
GraphicFeature
. #389 - 2D polygon graphics #487
- Some selector tools could just inhereit from this and
BaseSelector
- Some selector tools could just inhereit from this and
- 3D Graphics
- Polyhedron
- Ellipsoid
- add
ImageVolumeGraphic
#791 - 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 Interactivity attempt 4 #93
- more complex interactivity defined in in interactivity, continued #100
- Selectors selectors #142
- LinearSelector
- LinearRegionSelector
- RectangleRegionSelection
- Making a Circle Selector #742
- 🟢 PolygonRegionSelection
- Volume selector tools, cubes and slices
- events refactor #456
- 🟢 Hiding and using our own mouse cursors #380
- 🟢 tooltips #753
- Cursor tool #662
More Text control
- Decide on API
- Size of text for plot titles, etc.
- 🟢 Multi text, ex. for Images to label value of elements
Subplot/View area
- refactor
Subplot
, create a new classViewArea
which is used by bothSubplot
andDockedViewport
"DockedViewport" - Viewports adjacent toSubplot
Viewport
#30 - Axes with ticks and labels, waiting for Proposal for renderer / viewport improvements pygfx/pygfx#492
- added camera auto-scaling, examples work :D #80
- "Docked" viewports "DockedViewport" - Viewports adjacent to
Subplot
Viewport
#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
- Legends #403
Widgets
- ImageWidget #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 Automatically handle dataframe inputs for creating graphics #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
- Toolbar #149
Test suite
- basics framework to run desktop examples and notebook examples with screenshots
- notebook tests for everything
- meta issue - increasing test coverage #229
- emulate Events Tests with pointer emulation #374
- selectors
- think about Use hypothesis for testing? #362
Docs, tutorials and examples
- basic docs, docs #49
- add features section for doc page for each graphic #316
- Better contributing docs that describes tests and screenshots. #292
- Examples, tutorials, galleries in docs #486
- 🟢 more docs
- 🟢 More Qt examples #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
Metadata
Metadata
Assignees
Labels
No labels