Skip to content

a pandas dataframe interface for traitlets and pythreejs

License

Notifications You must be signed in to change notification settings

chrisjsewell/pandas3js

Repository files navigation

NOTE: this is deprecated, in favour of https://github.com/chrisjsewell/ase-notebook

Build Status Coverage Status PyPI

pandas3js: 3D Graphics UIs in the Jupyter Notebook

An extension for traitlets and pythreejs that:

  1. Provides a 2-way pandas dataframe interface for trait objects.
  2. Provides simple, high level (renderer agnostic) geometries, with default json specified mappings to pythreejs primitives.
  3. Creates bespoke 3D Graphics GUIs in the Jupyter Notebook with only a few lines of code.

Examples

pandas3js_example.ipynb

IPYNB Example

For more information, all functions contain docstrings with tested examples.

Installation

$ pip install pandas3js
$ jupyter nbextension enable --py --sys-prefix pythreejs

pandas3js is integration tested against python versions 2.7, 3.4, 3.5 and 3.6

Technical Details

Employing a meta Model/View design; Unique geometry objects are stored in a GeometryCollection model object, which can be viewed as (and modified by) a pandas.DataFrame, containing objects (by row) and traits/object_type (by column). The GeometryCollection (and its objects) can then be directionally synced to a pythreejs.Scene (and pythreejs.3DObjects) view, via a json mapping specification.