Skip to content
/ imviz Public

Pythonic bindings of imgui/implot for visualization

License

Notifications You must be signed in to change notification settings

joruof/imviz

Repository files navigation

imviz

Pythonic bindings for the great imgui and implot libraries.

What?

The goal of this project is to create bindings, which map the immediate mode gui paradigm in a pythonic way, so that writing GUIs in python (especially visualization heavy ones, meaning plots and stuff) becomes easy.

Why?

While writing visualization tools for research, I (personally) found the different python bindings of imgui/implot somewhat unsatisfactory, because:

  • pyimgui maps the api but does not include implot
  • imgui_datascience seems abandoned and does not include implot
  • dearpygui includes implot, but does not replicate the immediate mode paradigm in python

Who?

This is for the people who are too impatient to wait for matplotlib to render 10e5 data points. And for the people who are just completely unwilling (me) or utterly incapable (also me) to deal with application state management in PyQt (otherwise pyqtgraph would be fine).

How?

pybind11.

Installation

OpenGL libraries, GLFW, and GLEW are mandatory dependencies and are expected to be installed on the system.

On Ubuntu 22.04 OpenGL libraries are already installed and GLFW, GLEW can be installed with:

sudo apt-get install -y libglfw3-dev
sudo apt-get install -y libglew-dev

Via PyPI

For convenience a source distribution is available on PyPI. Install via pip:

python3 -m pip install imviz

From Source

The setup.py script configures and builds the project via cmake, which in turn downloads further required dependencies. An internet connection is therefore necessary at build time.

The project can then be installed by executing the following command in the project root directory:

python3 -m pip install .

About

Pythonic bindings of imgui/implot for visualization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages