Skip to content
This repository has been archived by the owner on Jul 18, 2023. It is now read-only.

Trash. UseCases

Cyrille Rossant edited this page Feb 26, 2014 · 1 revision

For whom are we coding?

There are many uses for a 3D and/or OpenGl-based plotting library. No one library will likely be able to satisfy them all. We need to consider whom we will serve, and whom we won't.

2D Plotting

Plotting 2D points, lines, and images.

Currently uses: matplotlib, which does these things well, Pyqtgraph, visvis.

Basic 3D Plotting

The same things as 2D, but in 3D: points, lines, and now surfaces. Other than putting the camera in the right place, visualization is not difficult.

Currently uses: matplotlib, which is slow; Mayavi, which is overkill; Visvis, which is id iosyncratic; pyqtgraph (works; would be little effort to make this code Qt-free).

Advanced 3D Plotting

Plotting things that fill space: volumes and vector fields. Need to be clever with cross-sections and transparency to make meaningful visualizations.

Currently uses: Mayavi, Visvis, pyqtgraph (but volume rendering is very rudimentary).

GPU-assisted plotting

Using the GPU to handle large data sets, or just plotting data that's already calculated on the GPU.

Currently uses: Glumpy, Galry

Realtime Interactivity

All visualizations should be able to update smoothly in realtime (within reasonable limits) and impose minimal load on the CPU. Example: multi-channel oscilloscope display where visualization cannot be allowed to interfere with data acquisition.

Currently uses: Visvis, Pyqtgraph (works, but 2D graphics are slow-ish)

Publication-quality Plotting

Need either high-resolution bitmap or, preferably, vector images for publication. Nice looking text and LaTeX typesetting would be nice. Plots of various types, 2D and 3D.

Currently uses: matplotlib, if possible, otherwise trying to make high-res images with others.

Clone this wiki locally