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

[NEW PROJECT]: Investigate browser-based spikeinterface #31

Closed
3 tasks
chrishalcrow opened this issue May 10, 2024 · 3 comments · May be fixed by #32
Closed
3 tasks

[NEW PROJECT]: Investigate browser-based spikeinterface #31

chrishalcrow opened this issue May 10, 2024 · 3 comments · May be fixed by #32

Comments

@chrishalcrow
Copy link

Project title: Investigate browser-based spikeinterface (spike in-your-browser)

Key Investigators

  • Chris Halcrow

Project Description

Python(ish) is now in the browser through WebAssembly, Pyodide and Jupyter-Lite. Have a go: https://pyodide.org/en/stable/console.html or https://jupyter.org/try-jupyter/lab/index.html . This means new users can play with Python without having to install anything. How much work would it take to add spikeinterface to this story?

Background

WebAssembly is in your browser (probably). Pyodide is a port of CPython to Webassembly. So, using it, you can run Python in your browser without having to install Python. "Pure python" packages can be installed using micropip (https://github.com/pyodide/micropip). "Pure" means that there are no C/Fortran extensions (or dependencies?? I'm a bit confused). If there are, the story gets more complicated: https://pyodide.org/en/stable/development/new-packages.html

So, it seems possible to make spikeinterface (or a stripped down version of it) work in people's browsers without them installing anything. This means people can have a poke and play with it before committing to installing it, and we can make tutorials and playgrounds for people and get them hooked on spikeinterface!!

But it's not trivial. So: the purpose of this project is not to do it. It's to figure out what we would need to do to do this.

Objectives

Figure out how to make a spikeinterface pyodide package.

Approach and Plan

  • Understand pyodide and micropip
  • Figure out what we can't do
  • Make a roadmap of spike in-your-browser

Progress

Next Steps (optional)

References

Nice interview with one of Python's core developers at PyCon 2019: https://talkpython.fm/episodes/show/213/webassembly-and-cpython

@h-mayorquin
Copy link

Two big hurdles:

@chrishalcrow
Copy link
Author

Yeah, also some memmap issues, and it's pretty ambitious. Think there's better things to do!

@h-mayorquin
Copy link

One thing that might be interested though is the visualization? I wonder if the ipywidgets backend is supported.

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