ipyvolume

3d plotting for Python in the Jupyter notebook based on IPython widgets using WebGL

https://github.com/widgetti/ipyvolume

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 45 committers (2.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.0%) to scientific vocabulary

Keywords

dataviz ipython-widget jupyter jupyter-notebook plotting python quiver rendering-3d-volumes scientific-visualization threejs virtual-reality visualisation volume-rendering webgl

Keywords from Contributors

closember notebook qt neuroimaging gtk tk wx neuroscience open-science plotly
Last synced: 6 months ago · JSON representation

Repository

3d plotting for Python in the Jupyter notebook based on IPython widgets using WebGL

Basic Info
  • Host: GitHub
  • Owner: widgetti
  • License: mit
  • Language: TypeScript
  • Default Branch: master
  • Homepage:
  • Size: 72.8 MB
Statistics
  • Stars: 1,961
  • Watchers: 54
  • Forks: 233
  • Open Issues: 212
  • Releases: 0
Topics
dataviz ipython-widget jupyter jupyter-notebook plotting python quiver rendering-3d-volumes scientific-visualization threejs virtual-reality visualisation volume-rendering webgl
Created about 9 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Code of conduct

README.md

ipyvolume

Join the chat at https://gitter.im/maartenbreddels/ipyvolume Documentation Version Anaconda-Server Badge Coverage Status Build Status

Try out in mybinder: Binder

3d plotting for Python in the Jupyter notebook based on IPython widgets using WebGL.

Ipyvolume currently can * Do (multi) volume rendering. * Create scatter plots (up to ~1 million glyphs). * Create quiver plots (like scatter, but with an arrow pointing in a particular direction). * Render isosurfaces. * Do lasso mouse selections. * Render in the Jupyter notebook, or create a standalone html page (or snippet to embed in your page). * Render in stereo, for virtual reality with Google Cardboard. * Animate in d3 style, for instance if the x coordinates or color of a scatter plots changes. * Animations / sequences, all scatter/quiver plot properties can be a list of arrays, which can represent time snapshots. * Stylable (although still basic) * Integrates with * ipywidgets for adding gui controls (sliders, button etc), see an example at the documentation homepage * bokeh by linking the selection * bqplot by linking the selection

Ipyvolume will probably, but not yet: * Render labels in latex. * Show a custom popup on hovering over a glyph.

Documentation

Documentation is generated at readthedocs: Documentation

Screencast demos

Animation

screencast

(see more at the documentation)

Volume rendering

screencast

Glyphs (quiver plots)

screencast quiver

Installation

If you want to use Jupyter Lab, please use version 3.0.

Using pip

Advice: Make sure you use conda or virtualenv. If you are not a root user and want to use the --user argument for pip, you expose the installation to all python environments, which is a bad practice, make sure you know what you are doing.

$ pip install ipyvolume

Conda/Anaconda

$ conda install -c conda-forge ipyvolume

Pre-notebook 5.3

If you are still using an old notebook version, ipyvolume and its dependend extension (widgetsnbextension) need to be enabled manually. If unsure, check which extensions are enabled:

$ jupyter nbextension list

If not enabled, enable them:

$ jupyter nbextension enable --py --sys-prefix ipyvolume $ jupyter nbextension enable --py --sys-prefix widgetsnbextension

Pip as user: (but really, do not do this)

You have been warned, do this only if you know what you are doing, this might hunt you in the future, and now is a good time to consider learning virtualenv or conda.

$ pip install ipyvolume --user $ jupyter nbextension enable --py --user ipyvolume $ jupyter nbextension enable --py --user widgetsnbextension

Developer installation

``` $ git clone https://github.com/maartenbreddels/ipyvolume.git $ cd ipyvolume $ pip install -e . notebook jupyterlab $ (cd js; npm run build) $ jupyter nbextension install --py --overwrite --symlink --sys-prefix ipyvolume $ jupyter nbextension enable --py --sys-prefix ipyvolume

for jupyterlab (>=3.0), symlink share/jupyter/labextensions/bqplot-image-gl

$ jupyter labextension develop . --overwrite ```

Developer workflow

Jupyter notebook (classical)

Note: There is never a need to restart the notebook server, nbextensions are picked up after a page reload.

Start this command: $ (cd js; npm run watch)

It will * Watch for changes in the sourcecode and run the typescript compiler for transpilation of the src dir to the lib dir. * Watch the lib dir, and webpack will build (among other things), ROOT/ipyvolume/static/index.js.

Refresh the page.

Owner

  • Name: widgetti
  • Login: widgetti
  • Kind: organization

GitHub Events

Total
  • Issues event: 1
  • Watch event: 30
  • Issue comment event: 7
  • Pull request event: 2
  • Fork event: 5
Last Year
  • Issues event: 1
  • Watch event: 30
  • Issue comment event: 7
  • Pull request event: 2
  • Fork event: 5

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 928
  • Total Committers: 45
  • Avg Commits per committer: 20.622
  • Development Distribution Score (DDS): 0.134
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
maartenbreddels m****s@g****m 804
GenevieveBuckley 3****y 24
Arbona j****a@g****m 20
Casper van Leeuwen c****n@s****l 11
Chris Sewell c****l@h****m 6
Guillaume Gay g****e@d****m 6
Oleh Kozynets O****S 6
Jeremy Tuloup j****p@g****m 4
Satrajit Ghosh s****h@g****m 3
Matthias Geier M****r@g****m 3
Angus Hollands g****5@g****m 3
Sylvain Corlay s****y@g****m 2
Oliver Evans o****6@g****m 2
Chris Holdgraf c****f@g****m 2
rpanai r****i@s****t 2
Jean-Rémi KING j****g@g****m 1
Josh Meyers j****4@g****m 1
Karthikeyan Singaravelan t****i@g****m 1
Kevin Mader k****r 1
Marc Garcia g****c@g****m 1
Mathieu m****1 1
Matt McCormick m****k@k****m 1
Todd t****8@g****m 1
Vidar Tonaas Fauske v****f@g****m 1
WANG Aiyong g****y@g****m 1
Wolf Vollprecht w****t@g****m 1
asmith26 a****6 1
martinRenou m****u@g****m 1
mpu-creare m****e 1
stonebig s****4@g****m 1
and 15 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 68
  • Total pull requests: 46
  • Average time to close issues: 8 months
  • Average time to close pull requests: 3 months
  • Total issue authors: 61
  • Total pull request authors: 24
  • Average comments per issue: 3.07
  • Average comments per pull request: 2.98
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 1.5
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • notEvil (3)
  • juanbolso (2)
  • patquem (2)
  • GenevieveBuckley (2)
  • Carifio24 (2)
  • MarcSkovMadsen (2)
  • Hackathorn (1)
  • matemato (1)
  • ShuvamGupta (1)
  • nathalie29856 (1)
  • rickvanhoof (1)
  • spigelli (1)
  • alvaro-luque (1)
  • MattiasOlla (1)
  • Thomzoy (1)
Pull Request Authors
  • maartenbreddels (17)
  • GenevieveBuckley (4)
  • jtpio (2)
  • zed (2)
  • jeammimi (2)
  • flokli (2)
  • rinftech-github (2)
  • rafique (1)
  • iisakkirotko (1)
  • TimoFriedri (1)
  • tmcaloone (1)
  • rpanai (1)
  • mgeier (1)
  • scottdraves (1)
  • 0xflotus (1)
Top Labels
Issue Labels
Funded (1) enhancement (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 4
  • Total dependent repositories: 77
  • Total versions: 16
conda-forge.org: ipyvolume
  • Versions: 16
  • Dependent Packages: 4
  • Dependent Repositories: 77
Rankings
Dependent repos count: 4.0%
Stargazers count: 9.2%
Average: 9.3%
Forks count: 11.6%
Dependent packages count: 12.5%
Last synced: 6 months ago

Dependencies

.github/workflows/build.yml actions
  • actions/checkout v2 composite
  • actions/download-artifact v2 composite
  • actions/setup-node v1 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
  • ifaxity/wait-on-action v1 composite
  • mamba-org/provision-with-micromamba main composite
.github/workflows/release.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v1 composite
  • actions/setup-python v2 composite
binder/environment.yml conda
  • nodejs
js/package-lock.json npm
  • 1253 dependencies
js/package.json npm
  • @jupyterlab/builder ^3.0.0 development
  • @types/chai ^4.1.4 development
  • @types/d3 ^5.7.2 development
  • @types/expect.js ^0.3.29 development
  • @types/mocha ^2.2.48 development
  • @types/node ^12.0.2 development
  • @types/requirejs ^2.1.31 development
  • @types/three ^0.93.4 development
  • bqplot ^0.5.0 development
  • chai ^4.1.2 development
  • eslint ^5.13.0 development
  • eslint-config-standard ^12.0.0 development
  • eslint-plugin-import ^2.16.0 development
  • eslint-plugin-node ^8.0.1 development
  • eslint-plugin-promise ^4.0.1 development
  • eslint-plugin-standard ^4.0.0 development
  • json-loader ^0.5.4 development
  • jupyter-threejs ^2.3.0 development
  • karma ^4.0.0 development
  • karma-chai ^0.1.0 development
  • karma-chrome-launcher ^2.0.0 development
  • karma-mocha ^1.3.0 development
  • karma-mocha-reporter ^2.2.5 development
  • karma-sinon ^1.0.5 development
  • karma-sourcemap-loader ^0.3.7 development
  • karma-webpack ^3.0.5 development
  • mocha ^3.5.3 development
  • npm-run-all ^4.1.3 development
  • raw-loader ~3.0.0 development
  • sinon ^2.4.1 development
  • sinon-chai ^2.11.0 development
  • source-map-loader ^0.2.4 development
  • typescript ^3.5.2 development
  • url-loader ^0.5.7 development
  • webpack ^4.29.1 development
  • webpack-cli ^3.2.3 development
  • @jupyter-widgets/base ^1 || ^2.0.2 || ^3 || ^4 || ^5 || ^6
  • @jupyter-widgets/controls ^1 || ^2
  • css-loader ^0.28.4
  • d3 ^5.7.0
  • gl-matrix ^2.0.0
  • is-typedarray ~1.0.0
  • jquery ^3.1.1
  • jslink ^1.1.3
  • lodash ^4.17.15
  • mustache ^2.3.1
  • ndarray ~1.0.18
  • ndarray-pack ^1.2.1
  • screenfull ^3.3.1
  • style-loader ^0.18.2
  • three ^0.97.0
  • three-text2d ~0.4.1
  • tslint ^5.20.0
  • underscore ^1.8.3
  • webrtc-adapter ^4.2.2
jslab/package.json npm
  • json-loader ^0.5.4 development
  • raw-loader ^0.5.1 development
  • url-loader ^0.5.7 development
  • webpack ^1.12.14 development
  • @jupyter-widgets/jupyterlab-manager ^0.28.0
  • ipyvolume ~0.4.0
ui-tests/package.json npm
  • @jupyterlab/galata 3.0.11-2
  • klaw-sync ^6.0.0
  • rimraf ^3.0.2
ui-tests/yarn.lock npm
  • 607 dependencies
pyproject.toml pypi
requirements_rtd.txt pypi
  • Pillow *
  • bokeh *
  • corner *
  • docutils ==0.17.1
  • emcee *
  • ipython_genutils *
  • ipyvolume ==0.6.0a10
  • ipywebrtc *
  • ipywidgets >=7.4.0
  • jupyter_sphinx ==0.1.4
  • matplotlib ==3.1.1
  • nbclient fix_update_widget_buffers
  • nbconvert fix_closing_script_early
  • nbsphinx fix_closing_script_early
  • recommonmark *
  • requests *
  • scipy *
  • sphinx_gallery *
  • traitlets *
  • traittypes *
  • vaex-core *
  • vaex-hdf5 *
  • vaex-ml *
  • vaex-viz *
setup.py pypi
  • Pillow *
  • bqplot *
  • ipyvue >=1.7.0
  • ipyvuetify *
  • ipywebrtc *
  • ipywidgets >=7.0.0
  • matplotlib *
  • numpy *
  • pythreejs >=2.4.0
  • requests *
  • traitlets *
  • traittypes *