jupyter-widgets / pythreejs

A Jupyter - Three.js bridge
https://pythreejs.readthedocs.io
Other
942 stars 188 forks source link

GUI library (on canvas) #209

Closed skoch9 closed 6 years ago

skoch9 commented 6 years ago

Hi, is there a GUI extension for pythreejs available that is similar to https://github.com/dataarts/dat.gui ? If not, could you maybe give me some pointers how to extend pythreejs with such a library?

Thanks!

vidartf commented 6 years ago

I know K3D already uses this. I think this could be created as a more general widget extension:

Optional features:

I'd be more than happy to contribute to such a library if you start one, or I can set up the boilerplate and give you admin/contrib rights!

CC @artur-trzesiok FYI

skoch9 commented 6 years ago

Thanks, yes I would like to implement it but first have to gain a better understanding how the python/javascript interface works. So what I understand is that the GUI in K3D does not allow to create/control GUI elements from the python side, is that right? The GUI controls there are coded on the javacsript side and call javascript functions.

For our usecase we want to create the GUI elements from Python and have them call Python functions on events, similar to what ipywidgets is doing. It would help a lot to get some hints if and how this is possible from @artur-trzesiok.

vidartf commented 6 years ago

@skoch9 I think I can stub out a starting point with boilerplate for you, and write in how I think it could be made to work. Most of the work would need to be done on the JS side. Does that sound like an acceptable idea?

vidartf commented 6 years ago

Closing this as this is not something that is currently being considered for core pythreejs, but rather something that can be added as a separate widget. Feel free to continue the discussion though.

skoch9 commented 5 years ago

@vidartf yes, that sounds like a plan. If you could create a stub, that would help me to understand the interplay and add the needed functionality. Do I understand it properly that it's technically possible to add gui elements from the python side and respond to callbacks in python?

vidartf commented 5 years ago

Sorry for leaving this for so long. I have now stubbed this out here: https://github.com/vidartf/jupyter-dat

vidartf commented 5 years ago

The relevant bits that need to be fleshed out should be discoverable by searching for "TODO" across the repo.

skoch9 commented 5 years ago

Great thanks! I will take a look at it.