Getting started
1. Just open it (recommended)
Section titled “1. Just open it (recommended)”Every app runs in your browser at https://met-al-lab.pages.dev/ — no install, no clone. Most apps compute entirely client-side; the real-data apps stream de-identified MET output live from Cloudflare R2, so a network connection is expected.
2. Offline single-file builds
Section titled “2. Offline single-file builds”Each of the first nine apps also ships as a fully self-contained dist/<name>.html:
download one file and double-click it. It opens straight from file:// with no server —
all modules, styles, images, and fallback data are inlined (see
Single-file builds for how).
Two apps intentionally have no single-file build:
- Real-Data Demo — its entire point is streaming from R2 over the network.
- WebGPU FSS — needs a WebGPU-capable browser; it is served, not baked.
3. From a checkout (developers)
Section titled “3. From a checkout (developers)”The apps/<name>/index.html sources are ES-module apps. Browsers block file:// module
imports (CORS origin: null), so serve the tree over HTTP:
python3 -m http.server 8000# open http://127.0.0.1:8000/The landing page index.html is the gallery; every app links both its served source and its
single-file build.
Running the self-tests
Section titled “Running the self-tests”The shared libraries carry standalone, dependency-free test harnesses (plain node, no npm):
node lib/selftest.mjs # met-stats: 129/129 passnode lib/met-stat-parse.selftest.mjs # met-stat-parse: 97/97 passnode apps/webgpu-fss/fss-parity.selftest.mjs # FSS CPU parity: 148/148 passnode apps/met-pipeline-explorer/data/realcase.selftest.mjs # 88/88 vs MET .statRebuilding a single-file app
Section titled “Rebuilding a single-file app”node tools/inline.mjs apps/<name>/index.html dist/<name>.htmlThe inliner prints byte size + module count and self-checks that the output is genuinely self-contained (exit 1 otherwise).
