I shared my attempt at this on Hacker News a few years ago.
I shared my attempt at this on Hacker News a few years ago.
Here are some of the things I've written about this in the recent past, though I seem to be suffering from profoundly pathological levels of analysis paralysis:
https://dercuano.github.io/notes/uvc-archiving.html
https://dercuano.github.io/notes/archival-vm.html
https://derctuo.github.io/notes/veskeno-outline.html
https://news.ycombinator.com/item?id=32218329
I think there will always be a hard core of explorables that really need the performance of a modern computer to express what you want to express, but I think there are a huge number that aren't, and for which the penalty of running 10x or 100x slower than they would in JavaScript with WebGL is worth the benefit of lasting forever without any maintenance.
For things that have some direct real-world applicability, like solving a sparse linear system (that isn't too large) or estimating the transmittance spectrum of a slice of the atmosphere, this kind of reproducibility seems even more important to me than for tutorial material.
I did mention the JVM in two out of four of the notes I linked there, and it was certainly an influential step in the direction I'm going, but I'm aiming for deeper levels of reproducibility than the JVM tries to offer.
I use the site for my own students when I teach physics, and they catch a few typos and bugs each semester.
I've been working on some integrations along the lines of explorable texts that are backend by compute in jupyter - like this mini one on fourier series https://curvenote.github.io/demo-fourier/ (pres the power button to connect to a binder instance).
There ia notebook behind the scenes, and the idea is to try and move from custom web/js development towards something that a content creator say who is familar with python can use. Also open up the possibility of computing with libraries in the python ecosystem, and with compute needs beyond what we can achieve in the browser.
Still this example is a one off react site, built with JS knowledge.
Working from the other direction I'm also working with folks on a static site generator that can use Markdown(MyST) and Juptyer Notebooks to build book like content, this is a little like JupyterBook but with a JS stack that can integrate the explorable JS based interactivity on the link above.
The idea is again to let people focus on content and have a site generator let them build the deployable book. The cli that does that is open source and in beta at the moment in terms of readiness https://curvenote.com/docs/web but we're excited about what it can do already and busy working on the explorable integrations - looking for feedback and direction too :)
some example of building with it:
- my blog https://www.stevejpurves.com/la-palma-earthquakes - a book like report https://climasoma.curve.space/