Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
9a01cd5
start ndprocessors
kushalkolar Dec 25, 2025
c46455f
basic timeseries
kushalkolar Dec 27, 2025
d93fa5d
add __init__
kushalkolar Dec 27, 2025
fddefb8
heatmap for timeseries works!
kushalkolar Dec 28, 2025
d5e4c7d
NDPositions, basics work, reorganize, increase default scatter size
kushalkolar Dec 29, 2025
074669b
black
kushalkolar Jan 26, 2026
ff5c578
NDPositions working with multi-dim stack of lines, need to test windo…
kushalkolar Jan 30, 2026
3f412c5
scatter collection
kushalkolar Jan 30, 2026
dc30151
progress, need to change to other branch so committing
kushalkolar Jan 30, 2026
2b3c9b6
Merge branch 'main' into ndwidget
kushalkolar Jan 30, 2026
db98bde
better
kushalkolar Jan 30, 2026
3629f70
interpolation for heatmap
kushalkolar Jan 31, 2026
87ea418
better place for check
kushalkolar Jan 31, 2026
e5a8d40
window functions working on n_datapoints dim
kushalkolar Feb 1, 2026
8d050a7
p dim window funcs working for single and multiple dims I think
kushalkolar Feb 1, 2026
3731997
black
kushalkolar Feb 1, 2026
7d4e420
index_mappings is working I think, lightly tested on p dim
kushalkolar Feb 2, 2026
6cdcb17
remove nd_timeseries since nd_positions is sufficient
kushalkolar Feb 2, 2026
e5afb2a
Merge branch 'main' into ndwidget
kushalkolar Feb 4, 2026
4748e59
auto-replace buffers (#974)
kushalkolar Feb 4, 2026
aefe418
some basic OOC working
kushalkolar Feb 4, 2026
b6d6e62
max num of dipslay datapoints
kushalkolar Feb 6, 2026
976459b
scatter stack, not tested
kushalkolar Feb 11, 2026
a9bfa44
progress
kushalkolar Feb 11, 2026
1a26e76
Merge branch 'ndwidget' of https://github.com/fastplotlib/fastplotlib…
kushalkolar Feb 11, 2026
596b8e7
scatter collection updates
kushalkolar Feb 14, 2026
db2431f
tootip handlers for ndpositions
kushalkolar Feb 14, 2026
57d9a6b
refactoring, general NDPP_Pandas processor for any dataframe data
kushalkolar Feb 14, 2026
9efd69c
Merge branch 'main' into ndwidget
kushalkolar Feb 14, 2026
47ec02a
separate array logic and graphic logic in `ImageWidget` (#868)
kushalkolar Feb 16, 2026
777a1d5
update
kushalkolar Feb 16, 2026
1355733
basic minimal ndw orchestration working
kushalkolar Feb 17, 2026
78878b1
implement auto-x for timeseries
kushalkolar Feb 17, 2026
3ad64fa
bugfix update worldobject -> graphic map for image tiles
kushalkolar Feb 18, 2026
75361c0
bugfix linear selector set limits
kushalkolar Feb 18, 2026
38481c0
linear selector for timeseries
kushalkolar Feb 18, 2026
5e67318
return full data if display_window is Noen
kushalkolar Feb 18, 2026
65616b9
stupid merge conflicts
kushalkolar Feb 18, 2026
9d7328a
arrow key to step indices
kushalkolar Feb 19, 2026
05a38ec
imgui separator
kushalkolar Feb 23, 2026
0433058
fix and ui stuff
kushalkolar Feb 23, 2026
f6322ee
both auto x range modes working
kushalkolar Feb 23, 2026
a71c931
progress
kushalkolar Feb 23, 2026
a2529cc
moving stuff
kushalkolar Feb 24, 2026
d53cb8f
much much better organization of things
kushalkolar Feb 24, 2026
fb42ae0
GlobalIndexVector working with ndpostions and ndimage
kushalkolar Feb 24, 2026
fabb65a
examples
kushalkolar Feb 24, 2026
1642978
progress
kushalkolar Feb 25, 2026
8df9fb3
do not reset vmin vmax when replacing Image buffer
kushalkolar Feb 26, 2026
7e83262
WIP migrate to xarray
kushalkolar Feb 28, 2026
117cb4f
Merge branch 'ndwidget' of https://github.com/fastplotlib/fastplotlib…
kushalkolar Feb 28, 2026
b220f94
window funcs in NDProcessor class using xarray, WIP, not tested
kushalkolar Feb 28, 2026
6f09b5d
typo
kushalkolar Feb 28, 2026
be437fa
basic single index slicing working with xarray
kushalkolar Mar 2, 2026
404bb7b
window funcs working for NDPositions and NDPP_Pands
kushalkolar Mar 3, 2026
42eb3f9
display_window window funcs working for NDPositions
kushalkolar Mar 3, 2026
c251a6d
imgui stuff
kushalkolar Mar 3, 2026
4ba9807
finish migrate NDImage to xarray, basics work
kushalkolar Mar 3, 2026
4f005ed
NDImage working mostly, behavior viz is back
kushalkolar Mar 3, 2026
597c48b
better flipping logic
kushalkolar Mar 3, 2026
68571b7
update examples
kushalkolar Mar 3, 2026
cad17c8
more progress
kushalkolar Mar 4, 2026
4c902ba
update example
kushalkolar Mar 4, 2026
1248e8e
histogram working for images
kushalkolar Mar 4, 2026
2ca3fbf
NDProcessor property aliases
kushalkolar Mar 4, 2026
782951f
more aliasing
kushalkolar Mar 4, 2026
5c6c360
fix
kushalkolar Mar 4, 2026
ca44b94
update example
kushalkolar Mar 4, 2026
2f68007
fix
kushalkolar Mar 4, 2026
7f2bcad
ui
kushalkolar Mar 4, 2026
c79c283
cleanup old iw-array, imports, add deprecation warning on old iw
kushalkolar Mar 4, 2026
611f897
add ndwidget section to deps with xarray
kushalkolar Mar 4, 2026
05907ed
nice repr for NDProcessor
kushalkolar Mar 5, 2026
61b20f7
Merge branch 'main' into ndwidget
kushalkolar Mar 5, 2026
04718f8
imgui right click menu for ndgraphics
kushalkolar Mar 5, 2026
0f03bd2
better
kushalkolar Mar 5, 2026
057308d
controller options separate window
kushalkolar Mar 5, 2026
0335af7
update imgui
kushalkolar Mar 5, 2026
5ee11ec
fix
kushalkolar Mar 6, 2026
eb91846
fix compute histogram
kushalkolar Mar 8, 2026
64d6150
other features WIP
kushalkolar Mar 14, 2026
a1e2995
Merge branch 'ndwidget' of https://github.com/fastplotlib/fastplotlib…
kushalkolar Mar 14, 2026
8b8626d
basics of other features works with ScatterStack for colors, markers,…
kushalkolar Mar 15, 2026
6727f45
require min pygfx v0.16.0 due to gc hash fix necessary for NDWidget
kushalkolar Mar 15, 2026
f8b1ea4
fix PlotArea.y_range
kushalkolar Mar 15, 2026
9374820
fix to create isolated buffer for colors when buffer replaced
kushalkolar Mar 15, 2026
ef7c29c
np.empty
kushalkolar Mar 15, 2026
c591d5c
cmap_transform_each WIP
kushalkolar Mar 15, 2026
7f5e5e5
progress
kushalkolar Mar 15, 2026
62ed939
fix
kushalkolar Mar 15, 2026
148c6c3
replace graphic when data changed, tweak index_mappings
kushalkolar Mar 17, 2026
62de35c
Merge branch 'ndwidget' of https://github.com/fastplotlib/fastplotlib…
kushalkolar Mar 17, 2026
75bcd3a
Merge branch 'main' into ndwidget
kushalkolar Mar 17, 2026
db49219
Update installation docs (#1013)
kushalkolar Mar 17, 2026
d00eb01
Merge branch 'main' into ndwidget
kushalkolar Mar 17, 2026
f6f8141
cmap lib handles image colormaps now
kushalkolar Mar 17, 2026
c2dff86
multi-windows ndwidget, maintain features like cmap when switching gr…
kushalkolar Mar 17, 2026
8e30d23
Merge branch 'ndwidget' of https://github.com/fastplotlib/fastplotlib…
kushalkolar Mar 17, 2026
0b603e9
progress
kushalkolar Mar 18, 2026
7e862ee
lighting objects only when a mesh is added
kushalkolar Mar 18, 2026
4a66438
fix
kushalkolar Mar 18, 2026
06d5266
update axes only when camera or view changes
kushalkolar Mar 18, 2026
066094a
clean heatmap func
kushalkolar Mar 18, 2026
d1d1f6c
stupid print
kushalkolar Mar 18, 2026
9372ec6
docstrings, comments
kushalkolar Mar 19, 2026
c354c67
remove unused attr, comments
kushalkolar Mar 19, 2026
4e8b8f5
remove print
kushalkolar Mar 19, 2026
0b1bc0b
add NDGraphic.pause, expose histogram widget
kushalkolar Mar 20, 2026
3e755f6
ndg pause in imgui
kushalkolar Mar 20, 2026
894de55
add helper function to convert heatmap timeseries to postional data s…
kushalkolar Mar 20, 2026
ef28878
index wans't calling handlers
kushalkolar Mar 21, 2026
7351507
Merge branch 'ndwidget' of https://github.com/fastplotlib/fastplotlib…
kushalkolar Mar 23, 2026
7778403
remove
kushalkolar Mar 23, 2026
3de9b23
allow image types other than float32 (#1027)
kushalkolar Apr 8, 2026
bbd03f6
Includes code for doing batched transforms in both directions (#1025)
apasarkar Apr 9, 2026
b918626
async NDProcessor (#1026)
kushalkolar Apr 9, 2026
29d4790
forgot to set back to False
kushalkolar Apr 10, 2026
e8a21a7
remove xarray from pyproject.toml
kushalkolar Apr 10, 2026
61f39bf
throttling
kushalkolar Apr 11, 2026
4c6769e
Adds nd vector graphic (#1034)
apasarkar Apr 15, 2026
b7c15de
Adds kwargs so user can customize vector field estimates (#1036)
apasarkar Apr 16, 2026
32f656f
implement yuv and other colorspaces and "bufferless" `TextureArray` (…
kushalkolar Apr 17, 2026
bfff113
cleanup
kushalkolar Apr 17, 2026
7dbbd31
`SelectionVector`, `HighlightSelector`, `VisibilitySelector`, `Select…
kushalkolar Apr 25, 2026
427baae
compute capabilities (#1040)
kushalkolar May 2, 2026
35de191
comments
kushalkolar May 4, 2026
f35f185
Merge branch 'ndwidget' of https://github.com/fastplotlib/fastplotlib…
kushalkolar May 4, 2026
71cf24f
better axes padding for tick labels, settable axis label (#1049)
kushalkolar May 9, 2026
6cb1cd0
use fully fledged async, `NDPositions` improvements (#1050)
kushalkolar May 29, 2026
c3fe667
remove __array_ufunc__ from required attrs
kushalkolar May 30, 2026
9169f43
do not require __array__() to be implemented for ndwidget
kushalkolar May 30, 2026
6c9e2b9
auto ref ranges
kushalkolar May 31, 2026
c6308e3
Full selection vector implementation
apasarkar Jun 11, 2026
393b48d
Includes some documentation at top of SelectionVector
apasarkar Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docs-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- name: build docs
run: |
cd docs
RTD_BUILD=1 make html SPHINXOPTS="-W --keep-going"
DOCS_BUILD=1 make html SPHINXOPTS="-W --keep-going"

# set environment variable `DOCS_VERSION_DIR` to either the pr-branch name, "dev", or the release version tag
- name: set output pr
Expand Down
33 changes: 15 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,31 +63,28 @@ Questions, issues, ideas? You are welcome to post an [issue](https://github.com/

To install use pip:

```bash
# with imgui and jupyterlab
pip install -U "fastplotlib[notebook,imgui]"
### With imgui support (recommended)

# minimal install, install glfw, pyqt6 or pyside6 separately
pip install -U fastplotlib
Without jupyterlab support, install desired GUI framework such as glfw, PyQt6, or PySide6 separately.

# with imgui
pip install -U "fastplotlib[imgui]"
pip install -U "fastplotlib[imgui]"

# to use in jupyterlab without imgui
pip install -U "fastplotlib[notebook]"
```
With jupyterlab support.

We strongly recommend installing ``simplejpeg`` for use in notebooks, you must first install [libjpeg-turbo](https://libjpeg-turbo.org/)
pip install -U "fastplotlib[notebook,imgui]"

- If you use ``conda``, you can get ``libjpeg-turbo`` through conda.
- If you are on linux, you can get it through your distro's package manager.
- For Windows and Mac compiled binaries are available on their release page: https://github.com/libjpeg-turbo/libjpeg-turbo/releases
### Without imgui

Once you have ``libjpeg-turbo``:
Minimal, install desired GUI library such as PyQt6, PySide6, or glfw separately.

pip install fastplotlib

With jupyterlab support only.

pip install -U "fastplotlib[notebook]"

Fastplotlib is also available on conda-forge. For imgui support you will need to separately install `imgui-bundle`, and for jupyterlab you will need to install `jupyter-rfb` and `simplejpeg` which are all available on conda-forge.

```bash
pip install simplejpeg
```

> **Note:**
> `fastplotlib` and `pygfx` are fast evolving projects, the version available through pip might be outdated, you will need to follow the "For developers" instructions below if you want the latest features. You can find the release history here: https://github.com/fastplotlib/fastplotlib/releases
Expand Down
44 changes: 44 additions & 0 deletions docs/source/api/axes/Axes.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
.. _api.Axes:

Axes
****

====
Axes
====
.. currentmodule:: fastplotlib.axes

Constructor
~~~~~~~~~~~
.. autosummary::
:toctree: Axes_api

Axes

Properties
~~~~~~~~~~
.. autosummary::
:toctree: Axes_api

Axes.auto_grid
Axes.basis
Axes.color
Axes.colors
Axes.grids
Axes.intersection
Axes.offset
Axes.visible
Axes.world_object
Axes.x
Axes.y
Axes.z

Methods
~~~~~~~
.. autosummary::
:toctree: Axes_api

Axes.update
Axes.update_using_bbox
Axes.update_using_camera

66 changes: 66 additions & 0 deletions docs/source/api/axes/Grid.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
.. _api.Grid:

Grid
****

====
Grid
====
.. currentmodule:: fastplotlib.axes

Constructor
~~~~~~~~~~~
.. autosummary::
:toctree: Grid_api

Grid

Properties
~~~~~~~~~~
.. autosummary::
:toctree: Grid_api

Grid.axis_color
Grid.axis_thickness
Grid.cast_shadow
Grid.children
Grid.geometry
Grid.id
Grid.infinite
Grid.major_color
Grid.major_step
Grid.major_thickness
Grid.material
Grid.minor_color
Grid.minor_step
Grid.minor_thickness
Grid.parent
Grid.receive_shadow
Grid.render_mask
Grid.render_order
Grid.thickness_space
Grid.up
Grid.visible

Methods
~~~~~~~
.. autosummary::
:toctree: Grid_api

Grid.add
Grid.add_event_handler
Grid.clear
Grid.get_bounding_box
Grid.get_bounding_sphere
Grid.get_geometry_bounding_box
Grid.get_world_bounding_box
Grid.get_world_bounding_sphere
Grid.handle_event
Grid.iter
Grid.look_at
Grid.release_pointer_capture
Grid.remove
Grid.remove_event_handler
Grid.set_pointer_capture
Grid.traverse

59 changes: 59 additions & 0 deletions docs/source/api/axes/Grids.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
.. _api.Grids:

Grids
*****

=====
Grids
=====
.. currentmodule:: fastplotlib.axes

Constructor
~~~~~~~~~~~
.. autosummary::
:toctree: Grids_api

Grids

Properties
~~~~~~~~~~
.. autosummary::
:toctree: Grids_api

Grids.cast_shadow
Grids.children
Grids.geometry
Grids.id
Grids.material
Grids.parent
Grids.receive_shadow
Grids.render_mask
Grids.render_order
Grids.up
Grids.visible
Grids.xy
Grids.xz
Grids.yz

Methods
~~~~~~~
.. autosummary::
:toctree: Grids_api

Grids.add
Grids.add_event_handler
Grids.clear
Grids.get_bounding_box
Grids.get_bounding_sphere
Grids.get_geometry_bounding_box
Grids.get_world_bounding_box
Grids.get_world_bounding_sphere
Grids.handle_event
Grids.iter
Grids.look_at
Grids.release_pointer_capture
Grids.remove
Grids.remove_event_handler
Grids.set_pointer_capture
Grids.traverse

74 changes: 74 additions & 0 deletions docs/source/api/axes/Ruler.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
.. _api.Ruler:

Ruler
*****

=====
Ruler
=====
.. currentmodule:: fastplotlib.axes

Constructor
~~~~~~~~~~~
.. autosummary::
:toctree: Ruler_api

Ruler

Properties
~~~~~~~~~~
.. autosummary::
:toctree: Ruler_api

Ruler.cast_shadow
Ruler.children
Ruler.color
Ruler.end_pos
Ruler.end_value
Ruler.geometry
Ruler.id
Ruler.label
Ruler.line
Ruler.line_width
Ruler.material
Ruler.min_tick_distance
Ruler.parent
Ruler.points
Ruler.receive_shadow
Ruler.render_mask
Ruler.render_order
Ruler.start_pos
Ruler.start_value
Ruler.text
Ruler.tick_format
Ruler.tick_marker
Ruler.tick_side
Ruler.tick_size
Ruler.ticks
Ruler.ticks_at_end_points
Ruler.up
Ruler.visible

Methods
~~~~~~~
.. autosummary::
:toctree: Ruler_api

Ruler.add
Ruler.add_event_handler
Ruler.clear
Ruler.get_bounding_box
Ruler.get_bounding_sphere
Ruler.get_geometry_bounding_box
Ruler.get_world_bounding_box
Ruler.get_world_bounding_sphere
Ruler.handle_event
Ruler.iter
Ruler.look_at
Ruler.release_pointer_capture
Ruler.remove
Ruler.remove_event_handler
Ruler.set_pointer_capture
Ruler.traverse
Ruler.update

10 changes: 10 additions & 0 deletions docs/source/api/axes/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Axes
****

.. toctree::
:maxdepth: 1

Grid
Grids
Ruler
Axes
3 changes: 3 additions & 0 deletions docs/source/api/graphic_features/TextureArray.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@ Properties

TextureArray.buffer
TextureArray.col_indices
TextureArray.colorspace
TextureArray.cpu_buffer
TextureArray.row_indices
TextureArray.shape
TextureArray.value

Methods
Expand Down
39 changes: 39 additions & 0 deletions docs/source/api/graphic_features/TextureYUV.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
.. _api.TextureYUV:

TextureYUV
**********

==========
TextureYUV
==========
.. currentmodule:: fastplotlib.graphics.features

Constructor
~~~~~~~~~~~
.. autosummary::
:toctree: TextureYUV_api

TextureYUV

Properties
~~~~~~~~~~
.. autosummary::
:toctree: TextureYUV_api

TextureYUV.colorrange
TextureYUV.colorspace
TextureYUV.cpu_buffer
TextureYUV.texture
TextureYUV.value

Methods
~~~~~~~
.. autosummary::
:toctree: TextureYUV_api

TextureYUV.add_event_handler
TextureYUV.block_events
TextureYUV.clear_event_handlers
TextureYUV.remove_event_handler
TextureYUV.set_value

2 changes: 2 additions & 0 deletions docs/source/api/graphic_features/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ Graphic Features
VertexPointSizes
UniformSize
TextureArray
TextureYUV
tuple
ImageCmap
ImageVmin
ImageVmax
Expand Down
Loading
Loading