-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Motivation
To make LTLMoPWeb3D fully client-side with no back-end API needed.
Summary
Nowadays, we can use newer technology like WebAssembly (WASM) and WASI to run native code directly in the browser. So we could compile LTLMoP's Python code to a WASI binary and run that in the browser instead of accessing an API.
Implementation Details
Specifically, I was looking at using container2wasm to convert the LTLMoP Docker image (from #42 / VerifiableRobotics/LTLMoP#82) to a WASI binary and then run it in the browser via either browser_wasi_shim or @runno/wasi.
The Spec Editor could then directly run the compilation commands in the browser instead of making API requests to the LTLMoP API.
Concerns
While LTLMoP is mostly Python, it also relies on Java code and native C and Fortran even (via numpy / scipy / BLAS). Each of those should be possible to compile to WASI, but there may or may not be problems getting them all to work together.