Full-Web reimplementation of the DataLab scientific data-processing platform — the entire computation engine and processing catalog run inside the browser.
DataLab Web embeds the Sigima computation engine in Pyodide (CPython compiled to WebAssembly, JupyterLite-style) and pairs it with a dedicated React / TypeScript user interface modelled on the desktop Qt DataLab application. Plotting is delegated to Plotly.js since Qt-based PlotPy is not available in the browser.
👉 https://datalab-platform.com/web/
The latest release is deployed automatically to GitHub Pages. Open the link in any modern browser (Chrome, Edge, Firefox, Safari) and the full DataLab application — Sigima, NumPy, SciPy, scikit-image, h5py — runs locally inside the browser tab. No server, no account, no upload: your data never leaves your machine.
First load downloads Pyodide and installs Sigima via
micropip(~30–60 s). Subsequent loads are cached by the browser. On Microsoft Edge the first load may be much slower — see doc/troubleshooting.md for the one-line fix.
DataLab Web mirrors a large portion of the desktop application surface:
- Signal & image panels — 1D curves and 2D arrays with a rich set of synthetic generators, full Plotly visualisation, cross-hair markers, contrast adjustment, cross profiles and stats area tools.
- Processing & analysis — operations, transforms, filters, fitting, FFT/PSD, stability analyses, measurements and profile extraction, exposed automatically through the menu bar by introspecting Sigima's catalog.
- ROI & object tree — segment / rectangular / circular / polygonal regions of interest, plus a multi-group workspace with drag & drop, metadata editor, statistics card and computation history.
- Macros & notebooks — embedded Python editor and multi-tab notebook panel, each running in dedicated Web Workers, with
.ipynbimport/export and bidirectional macro ⇄ notebook conversion. See doc/notebooks.md. - Plugins — Qt-compatible
PluginBaseAPI: the same plugin source runs in DataLab desktop and DataLab Web. See doc/plugins.md. - I/O — HDF5 browser (via
h5pyin Pyodide), text import wizard and per-directory save dialog. - UI niceties — light / dark theme, persisted layout, pop-out result panel, contextual help, full internationalisation.
flowchart LR
UI["<b>React / TypeScript UI</b><div style='text-align:left;min-width:260px'>• Signal & image panels<br/>• Plotly.js plots<br/>• Menus / dialogs<br/>• Macro editor<br/>• Plugin manager</div>"]
Py["<b>Pyodide (CPython + WASM)</b><div style='text-align:left;min-width:420px;white-space:nowrap'>• numpy / scipy / scikit-image<br/>• h5py<br/>• sigima (computation engine)<br/>• bootstrap.py (object store + JS-friendly helpers)</div>"]
UI -->|"runtime.ts bridge"| Py
For the full picture — layer view, component view, worker protocols, the source-tree breakdown and end-to-end flows with diagrams — see doc/architecture.md. The persistence model explains why the HDF5 workspace file is the single durable source of truth.
| Project | Purpose | Runs where |
|---|---|---|
| DataLab | Reference desktop app (Qt + PlotPy) | Native |
| DataLab-Kernel | Jupyter kernel exposing DataLab to notebooks | Local Python |
| DataLab-Web | Full browser app, Sigima in WASM (this project) | Browser |
| Sigima | Headless computation engine (signals/images) | Anywhere Python |
Prerequisites: Node.js ≥ 18.
npm install
npm run dev # Vite dev server on http://localhost:5173
npm run build # static bundle in dist/ (deployable to any static host)
npm run lint # ESLint
npm run format # PrettierThe first dev load downloads Pyodide (~10 MB) and installs Sigima via micropip (30–60 s); subsequent loads are cached. Vite is configured with base: "./" so the build works under sub-paths.
| Topic | Guide |
|---|---|
| Documentation index | doc/README.md |
| Architecture (layers, workers, flows, source tree) | doc/architecture.md |
| Persistence model | doc/persistence.md |
| Notebooks | doc/notebooks.md |
| Plugins | doc/plugins.md |
| Internationalisation | doc/i18n.md |
| Testing strategy & running the suites | doc/testing-strategy.md |
| Releasing & distribution (app + SDK tarballs) | doc/releasing.md |
| Troubleshooting | doc/troubleshooting.md |
| Roadmap | doc/roadmap.md |
DataLab-Web is funded under an NLnet grant and complies with the NLnet policy on the use of Generative AI. GenAI is used as a development aid only; high-level review, architectural decisions and scientific validation remain under exclusive human responsibility, and AI-assisted commits carry an Assisted-by: <Model> <Version> trailer. The full rules live in CONTRIBUTING.md.
BSD 3-Clause, same as DataLab and Sigima.

