Skip to content

Roadmap & Status ​

The project is under active development — every item marked Done here is in the codebase and covered by the test suites. This table reflects the actual state, not aspirational designs.

Module status ​

ModuleFeaturesStatus
Welcome pagehardware self-checks, language/theme switcher, enter workbenchDone
Workbenchfour-region layout, empty state, drag & drop, status barDone
Plugin systemload/activate/unload, registry, built-ins, cspkg + sandboxDone
Projectscreate/save/open/autosave/share .clprojDone
Data loadingfile picker / drag & drop / format detection / routingDone
Rendering2D canvas + host Three.js scene (lazy, visibility-managed)Done
Flow modecompiler (validate/topology) + executor (incremental cache) + 40+ built-in block types + Flow canvas + result preview + sample pipelinesDone
Block modeshared IR + Blockly 13 (lazy-loaded) + interpreter + JS / Python codegen + 40+ built-in blocks + 5 sample programs + studio.* API reusing Flow ops + i18n via BKY_*Done
i18nzh-CN / en-US, detection, reactive switching, Blockly BKY_*Done
Themingdark/light, system-follow, CSS variablesDone
Settingsgeneral / GPU / data / aboutDone
Perf monitorFPS / frame / GPU / memory / data-scale + warningsDone
Sharinglink generation, project exportDone
Native coredevice mgmt, GpuBuffer, compute kernel (compile/bind-group/dispatch/run/diagnostics)Core done
GPU computeapi.gpu compute surface, WGSL templates, particles / 3-D N-body / LBM fluid / wave equation / histogram / heatmap / point-cloud kernels accelerated (CPU fallback), real-device E2E verificationDone
Statisticsdescriptive stats, special functions, t-tests / ANOVA / Mann–Whitney / chi-square, effect sizes, Bonferroni & BH corrections, power analysis; surfaced as 11 Flow-mode stats.* blocksDone
Experiment trackingper-project run records (IndexedDB runs store), run-history dialog with A/B parameter diff (src/stores/experimentStore.ts, src/core/experiment/record.ts)Done
Uncertainty suitebootstrap CI, Monte-Carlo sampling, MCMC (normal likelihood, uninformative prior) with cancellation — src/core/uncertainty/ + UncertaintyDialogDone
Unit systemtyped Quantity with SI parsing, dimensional algebra + units.convert/units.check blocks + QuantityInput (src/core/units/)Done
Data lineagefile→run DAG rebuilt from run records + ingestion, layered layout (src/core/lineage/), LineageCanvas dialogDone
Chunked ingestionasync row-window reader for large delimited files, preview + fingerprint (src/core/chunked/)Done
Figure Studiomulti-panel publication figures on journal templates (IEEE/Elsevier), SVG/PDF/PNG-600dpi export, /figures route (src/core/figure/)Done
Supplement packagingpaper-ready zip with manifest.json (runs + lineage + metadata form) + optional data/code (src/core/package/supplement.ts)Done
Notebookmixed markdown/code cells in the project, dedicated Pyodide runtime, runs feed the experiment history — /notebook route (src/core/notebook/)Done
Scientific I/OHDF5 / NetCDF / FITS / Zarr / Parquet import via a single dispatcher (src/core/io/)Done
Plot enginepure-TS SVG renderer with scales/ticks, SVG + PDF export (src/core/plot/)Done
Reproducibilityseeded RNG, run manifests, DAG-to-Python export (src/core/repro/)Done
Physics labselectromagnetism, optics (ray tracing with dispersion), structural mechanics (truss with collapse) — interactive, data-drivenDone
Code modeMonaco + Pyodide (Python) + REPL + 9 sample programs on the existing IR; three-mode conversion (Block ↔ Flow ↔ Code via IR) done; R ships as a full webR runtime (vendored in public/webr/, auto-copied by scripts/copy-webr.mjs, missing bundle falls back to the IR engine)Done
Scientific solverssparse Hermitian eigensolver (thick-restart Lanczos / LOBPCG / Jacobi-Davidson + MINRES shift-invert, 2-D spectrum report + 3-D mode fields) and 1D–3D fluid-network bidirectional coupler (multi-rate time-step coordination + coarse–fine subcycling), both run in Pyodide workers — em-eigensolver, fluid-cfd-couplerDone
Marketplaceplugin registry UI & remote install; .cspkg package-signing gate (ed25519, FR-05) liveSigning gate: Done · registry/install: Next
CIGitHub Actions (unit + E2E + Pages deploy)Done
Error handlingerror boundaries, fallbacks, retryPartial

Milestones ​

  1. M1 — Solidify the foundations (current): complete the plugin lifecycle, sandbox, and test coverage; land the docs site.
  2. M2 — Real GPU compute (complete): the native core exposes GpuBuffer + ComputeKernel::run, the plugin API ships an api.gpu compute surface, and reusable WGSL templates live in src/core/wgsl.ts. GPU acceleration now spans Particles (single-buffer integration), N-Body Gravity (3-D all-pairs with ping-pong buffers), the D2Q9 LBM fluid (collide + stream), the wave-equation leapfrog, the histogram / heatmap / point-cloud kernels, the matmul / FFT / k-means / binning compute kernels, and the sparse matrix–vector multiply (SpMV) kernel — each with a matching CPU fallback. npm run test:e2e drives the real WebGPU path in headless Edge (SwiftShader): a numeric harness compares the GPU result against the CPU integrator (passing within ~2e-6), and an app integration step clicks through the Particles plugin and asserts a wasm-engine GPU toast. Remaining follow-up: GPU perf telemetry per kernel.
  3. M3 — Code mode: Python (Pyodide) is complete — Monaco editor, CPython Worker runtime with importable studio module, REPL + variable snapshots, worker interrupt, and 9 sample programs under examples/code/. R is complete too — a full webR runtime is vendored in public/webr/ (auto-copied by scripts/copy-webr.mjs and verified by verify-r-runtime.mjs), falling back to the IR engine when the bundle is absent. The three-mode conversion (Block ↔ Flow ↔ Code round-trip through the shared IR) is done and pinned by a sync-threeway unit test.
  4. M4 — Marketplace: package registry, versioning, and in-app install/update flows. The .cspkg package-signing gate (ed25519, FR-05) already shipped with the security work — see SECURITY.md.
  5. M5 — CI + release: GitHub Actions pipeline, artifact publishing, and the docs site deployed to Pages — all complete (see .github/workflows/).

Known limitations (honest) ​

  • The plugin sandbox isolates the page context (globals, DOM, stores) but workers share the origin's IndexedDB — a malicious package could still read app data. The .cspkg package-signing gate (ed25519, FR-05) is live (see SECURITY.md); the missing piece is a self-service third-party submit & install pipeline.
  • The legacy new Function fallback (when Workers are unavailable) is not a security boundary; the UI warns when it is used.
  • The WebGPU compute path requires a WebGPU-capable browser; without one the app runs in CPU-fallback mode.
  • Block / Code mode resolves studio.load(...) via the project files registry (setProjectFiles + resolveDataFile) so project-owned files, bundled examples, and Code-mode _FILES share a single loader.
  • Block mode and the IR are designed so a gpu.* family of nodes slots in later; the worker-side runner and the ComputeKernel dispatch from a block are not yet wired.

Released under the MIT License.