Interactive applications (WebAssembly)#
The MD-EXAFS ecosystem includes interactive applications that execute directly in the browser via WebAssembly (Pyodide via Marimo).
Because the Python runtime executes client-side within the browser, these applications require no server infrastructure, no local Python installation, and no cloud allocation. Atomic coordinate files uploaded into the interface remain in local browser memory.
Available applications#
WASM App
Calculates Mean Squared Relative Displacements (\(\sigma^2\)), third/fourth cumulants, and atomic displacement parameters (\(B\)-factors) from trajectory files. Includes 3D structure visualization.
WASM App
Generates spherical, icosahedral, and core-shell bimetallic clusters (e.g. Au@Ag) with custom lattice parameters, shell thicknesses, and radial cutoffs. Exports coordinates to standard formats.
How it works#
The applications are exported from reactive Marimo notebooks (notebooks/debye_waller.py and notebooks/nanoparticle_builder.py) using marimo export html-wasm.
When a page loads:
Pyodide initialises a WebAssembly-compiled CPython interpreter inside a Web Worker.
Core dependencies (
numpy,ase,scipy) load into browser memory.The reactive cells execute, rendering interactive inputs, calculations, and 3D atomic visualisations.