pandas3js: 3D Graphics UIs in the Jupyter Notebook
An extension for traitlets and pythreejs that:
- Provides a 2-way pandas dataframe interface for trait objects.
- Provides simple, high level (renderer agnostic) geometries, with default json specified mappings to pythreejs primitives.
- Creates bespoke 3D Graphics GUIs in the Jupyter Notebook with only a few lines of code.
Examples
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.3DObject
s) view, via a json mapping specification.