Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
5 tasks
psychemedia opened this issue May 6, 2022 · 0 comments

Comments

@psychemedia
Copy link
Contributor

psychemedia commented May 6, 2022

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:

  • a standalone Javascript package that can run the simulator purely as a Javascript app; hooking a simple text editor back in as per the original ev3devsim simulator [backup] would be sensible as an optionally enabled element;
  • a clean install of the Javascript package within the proxied widget;
  • a clean Python API wrapper that communicates with the proxy widget;
  • separated neural network packages;
  • cleanly separated IPython magics.

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?!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant