Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Update the README #704

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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jan 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
54 changes: 39 additions & 15 deletions 54 README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,28 @@
[**Examples**](https://github.com/kushalkolar/fastplotlib#examples) |
[**Contributing**](https://github.com/kushalkolar/fastplotlib#heart-contributing)

Next-gen plotting library built using the [`pygfx`](https://github.com/pygfx/pygfx) rendering engine that can utilize [Vulkan](https://en.wikipedia.org/wiki/Vulkan), [DX12](https://en.wikipedia.org/wiki/DirectX#DirectX_12), or [Metal](https://developer.apple.com/metal/) via WGPU, so it is very fast! `fastplotlib` is an expressive plotting library that enables rapid prototyping for large scale exploratory scientific visualization.
Next-gen plotting library built using the [`pygfx`](https://github.com/pygfx/pygfx) rendering engine that utilizes [Vulkan](https://en.wikipedia.org/wiki/Vulkan), [DX12](https://en.wikipedia.org/wiki/DirectX#DirectX_12), or [Metal](https://developer.apple.com/metal/) via WGPU, so it is very fast! `fastplotlib` is an expressive plotting library that enables rapid prototyping for large scale exploratory scientific visualization.

> **Note**
>
> `fastplotlib` is currently in the **late alpha stage**, but you're welcome to use it or contribute! See our [Roadmap](https://github.com/kushalkolar/fastplotlib/issues/55). See this for a discussion on API stability: https://github.com/fastplotlib/fastplotlib/issues/121
<div align="center">
<img src=https://github.com/user-attachments/assets/5c6bede6-e0cb-4867-bb9b-f86cc5e98619 width="1000" />
</div>

> **Note:**
> `fastplotlib` is currently in the **late alpha stage**, but you're welcome to use it or contribute! See our [Roadmap](https://github.com/kushalkolar/fastplotlib/issues/55). Also, see this for a discussion on API stability: https://github.com/fastplotlib/fastplotlib/issues/121

# What are *some* things I can do with `fastplotlib`?

- GPU-accelerated visualization

- interactive visualization via an intuitive and expressive API

- rapid prototyping and algorithm design

- easy exploration and fast rendering of large-scale data

- design, develop, evaluate, and ship machine learning models

- create visualizations for real-time acquisition systems for scientific instruments (cameras, etc.)

# Supported frameworks

Expand All @@ -30,11 +47,7 @@ Next-gen plotting library built using the [`pygfx`](https://github.com/pygfx/pyg
:heavy_check_mark: `glfw`\
:heavy_check_mark: `wxPython`

**Notes:**\
:heavy_check_mark: Non-blocking interactive Qt/PySide output is supported in ipython and notebooks, see the [interactive shells section in the user guide](http://fastplotlib.org/ver/dev/user_guide/guide.html#using-fastplotlib-in-an-interactive-shell) \
:grey_exclamation: We do not officially support `jupyter notebook` through `jupyter_rfb`, this may change with notebook v7\
:grey_exclamation: We only support jupyterlab for use in notebooks. This means that we do not support VSCode notebooks or any other python notebook platform. Jupyterlab is the most reliable way to use widget-based libraries in notebooks.\
:disappointed: [`jupyter_rfb`](https://github.com/vispy/jupyter_rfb) does not work in collab, see https://github.com/vispy/jupyter_rfb/pull/77
Write your code once and run it anywhere. Whether you are using `Qt`, `glfw`, `jupyter lab`, or doing offscreen rendering, `fastplotlib` works across all major platforms (Linux, Windows, Mac OS X) :smile: See the [FAQ](https://www.fastplotlib.org/ver/dev/user_guide/faq.html) for more details on where and how you can use `fastplotlib`.

# Documentation

Expand Down Expand Up @@ -63,7 +76,7 @@ pip install -U "fastplotlib[notebook]"
We strongly recommend installing ``simplejpeg`` for use in notebooks, you must first install [libjpeg-turbo](https://libjpeg-turbo.org/)

- 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.
- 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

Once you have ``libjpeg-turbo``:
Expand All @@ -72,8 +85,7 @@ Once you have ``libjpeg-turbo``:
pip install simplejpeg
```

> **Note**
>
> **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

### For developers
Expand All @@ -85,7 +97,7 @@ git clone https://github.com/fastplotlib/fastplotlib.git
cd fastplotlib

# install all extras in place
pip install -e ".[notebook,docs,tests]"
pip install -e ".[notebook,docs,tests,imgui]"
clewis7 marked this conversation as resolved.
Show resolved Hide resolved

# install latest pygfx
pip install git+https://github.com/pygfx/pygfx.git@main
Expand All @@ -105,16 +117,28 @@ User guide: http://fastplotlib.org/ver/dev/user_guide/guide.html

The `quickstart.ipynb` tutorial notebook is a great way to get familiar with the API: https://github.com/fastplotlib/fastplotlib/tree/main/examples/notebooks/quickstart.ipynb

## GPU drivers and requirements
# GPU drivers and requirements

Generally if your GPU is from 2017 or later it should be fine. Modern integrated graphics are usually fine for many use cases. The exact requirements will depend on how complex your visualization is and how many objects you need to render.

More detailed information on GPUs and drivers is here: http://fastplotlib.org/ver/dev/user_guide/gpu.html

For more detailed information, such as use on cloud computing infrastructure, see the WGPU docs: https://wgpu-py.readthedocs.io/en/stable/start.html#cloud-compute

# :heart: Contributing
# Contributing :heart:

We welcome contributions! See the contributing guide: https://github.com/fastplotlib/fastplotlib/blob/main/CONTRIBUTING.md

You can also take a look at our [**Roadmap for 2025**](https://github.com/fastplotlib/fastplotlib/issues/55) and [**Issues**](https://github.com/fastplotlib/fastplotlib/issues) for ideas on how to contribute!

# Developers :brain:
clewis7 marked this conversation as resolved.
Show resolved Hide resolved

- [**Kushal Kolar**](https://github.com/kushalkolar)

- [**Caitlin Lewis**](https://github.com/clewis7)

- [**Almar Klein**](https://github.com/almarklein)

- [**Amol Pasarkar**](https://github.com/apasarkar)

A special thanks to all of the `pygfx` developers and the amazing work they have done.
8 changes: 6 additions & 2 deletions 8 docs/source/user_guide/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,12 @@ What frameworks does ``fastplotlib`` support?
- `glfw`
- `wxPython`

Note: Use in Google Colab is not highly functional. We recommend using an inexpensive alternative cloud provider
such as CodeOcean or Lambda Cloud. We have tested these and `fastplotlib` works very well.
Notes:
- `jupyter_rfb <https://github.com/vispy/jupyter_rfb>`_ does not work in Google Collab, see https://github.com/vispy/jupyter_rfb/pull/77
- Non-blocking interactive Qt/PySide output is supported in ipython and notebooks, see the `interactive shells section in the user guide <http://fastplotlib.org/ver/dev/user_guide/guide.html#using-fastplotlib-in-an-interactive-shell>`_
- We do not officially support `jupyter notebook` through `jupyter_rfb` and strongly recommend using `jupyter lab`. Jupyter Notebook v7 might work, but this has not been extensively tested.
- We only support `jupyterlab` for use in notebooks. This means that we do not support VSCode notebooks or any other python notebook platform. Jupyterlab is the most reliable way to use widget-based libraries in notebooks.


How can I use ``fastplotlib`` interactively?
--------------------------------------------
Expand Down
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.