-
Notifications
You must be signed in to change notification settings - Fork 57
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
vminvmaxfor familiarity graphics refactor, again #88 - 🟢 Use qtpy so we can use PySide etc #384
- UI elements, using imgui-bundle and
ImguiRendererwithwgpu - Record
Figureto a video file robustly #918 - Creating types for all events, canvas events and fastplotlib graphic feature events #852
Layouts
- Customizable Figure layouts #315
- Add a row or column to existing Gridplot
- Superimposing Reference Frames #772
- VR support? Render the same scene using a slightly offset camera onto a second canvas.
Graphics
- Support RGB image arrays with
ImageGraphic#129 - better handling of color args, done in indexable graphic attributes #78
-
Heatmapneeds to work with larger array, see Handling large images pygfx/pygfx#360 - consider descriptor pattern for
GraphicFeature. #389 - 2D polygon graphics #487
- color cycler #899
- 3D Graphics
- add
ImageVolumeGraphic#791 - Arbitrary polyhedrons and surface meshes
- add
- Graphic Collections
- LineCollection
- LineStack
- flat graphic features, that old pr which refactor collections
- vector fields and stream plots
- more scatter features
- shapes and array-like shape implementation
- scatter point edge features
- all edge material features
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
- Improvements to selector tools #781
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 classViewAreawhich is used by bothSubplotandDockedViewport"DockedViewport" - Viewports adjacent toSubplotViewport#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
SubplotViewport#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
ImageWidgetis 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
- separate array logic and graphic logic in
ImageWidget#868
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
EricThomson
Metadata
Metadata
Assignees
Labels
No labels