innovationOUtside / nbev3devsim

Ev3DevSim ipywidget in Jupyter notebooks
Apache License 2.0
5 stars 0 forks source link

The Big Split - Refactor Out a Clean Javascript Simulator and Create a Native ipywidget #137

Open psychemedia opened 2 years ago

psychemedia commented 2 years ago

Refactor the code to provide a very clean split between the js components, the proxy widget hooks, and the python wrapper. Also separate out the neural network components that are not directly related to nbev3devsim into a separate package or plugin/extension package.

Ideally, at the end, we should have:

Once this is done, we can look at creating a native ipywidget and remove the jp-proxy_widget wrapper. A handy crib for this might be something like the jupyter-widgets/ipyleaflet package which wraps the leaflet Javascript interactive map package.

All the way along, we should try to ensure that a simple generic Python wheel can be constructed that will work in JupyterLite (one of the aims of tidying things up is to create a JupyterLab extension that can run nbev3devsim in JupyterLite.

At some point, I guess we could also try to figure out how to swap out skulpt for pyodide?!