The feedWebGL2
package is a collection of Javascript and Python code that include tools for
exploring scientific data such as the volume viewer shown below.
These tools use GPU accelerated WebGL2 transform/feedback processing stages to provide graphics preprocessing or other general purpose computations.
There are a number of tools implemented in the package.
The WebGLTransformFeedback interface is part of the WebGL 2 API and enables transform feedback, which is the process of capturing primitives generated by vertex processing. It allows to preserve the post-transform rendering state of an object and resubmit this data multiple times.
The feedWebGL2
package encapsulates the components
and concepts for
instanced transform/feedback processing in an object framework
which facilitates implementing instanced transform/feedback programs
in Javascript using WebGL.
The package implements uses for instanced transform feedback including contour and iso-surface generation tools.
The feedWebGL2
is useful for building scientific data exploration tools
such as:
The package includes a Python package embedding of the Javascript functionality into Jupyter using widgets.
This package is still experimental. In order to easily include enhancements and bugfixes I recommend installing the package in development mode at this time. If you have any problems with the installation procedure below please let me know by creating an issue in the repository.
The Python package for feedWebGL2
defines Jupyter widget interfaces to underlying
Javascript based features. To use the Python package you will need a recent version of Jupyter
configured with Python 3 kernels. Please use git
to clone the repository in order to
install a development version of this experimental software including all the example notebooks.
The easiest and safest way to get a working environment of this kind is to install the individual version of Anaconda in single user mode on your workstation.
To use the package please clone the repository using git. If you don't have git you can install it using anaconda (https://anaconda.org/anaconda/git). Clone the repository in an appropriate folder using this command line:
% git clone https://github.com/AaronWatters/feedWebGL2.git
The jp_doodle
dependancy for the package apparently does not install
automatically using the commands below in some cases. Install it in
the appropriate environment from Github using the followind command
% pip install https://github.com/AaronWatters/jp_doodle/zipball/master
Install the feedWebGL2
package in development mode
in an appropriate environment using pip
as follows:
% cd feedWebGL2
% pip install -e .
To test that the package has installed correctly, launch a Jupyter server starting in the
feedWebGL2
folder or above it.
% jupyter notebook
and then navigate to the
visualizing a 3d matrix using the volume widget.ipynb notebook in the notebooks
folder.
Run all the cells of the notebook. If it works you should see a widget appear below
cell 2 that looks something like this: