Skip to content

Tools for implementing WebGL2 feedback processing stages for graphics preprocessing or other purposes

License

Notifications You must be signed in to change notification settings

flatironinstitute/feedWebGL2

Repository files navigation

feedWebGL2

Binder

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.

What exploration tools?

There are a number of tools implemented in the package.

Probably the most useful tools are the Javascript/WebGL volume explorer and the Jupyter widget wrapper for the isosurface volume viewer.

What is transform/feedback?

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.

How to install the Python package in development mode

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:

About

Tools for implementing WebGL2 feedback processing stages for graphics preprocessing or other purposes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages