/ concept-collection / numbl-web-ide
Sign in
concept-collection / numbl-web-ide
numbl-web-ide / README.md
47 lines · 2.0 KBCodeBlameHistory
ecdc868numbl web IDE: run .m files in the browser with numblJeremy Magland 1# numbl web IDE
3Run MATLAB-syntax `.m` files in your browser with
4[numbl](https://numbl.org), inside a VS Code-style IDE built on
5[minwebide](https://github.com/magland/minwebide). Projects live in your
6browser's IndexedDB.
8**Live site:** https://concept-collection.github.io/numbl-web-ide/
10The landing page manages **projects** (create / rename / duplicate / delete),
11each with its own file system, addressed as `#/project/<id>`. Create a
12**sample project** and press **▶** on a script:
14- Text output streams to the **Output** panel; figures open as **Figure N**
15 views in the secondary side bar (rendered by numbl's own figure renderer —
16 2-D canvas, 3-D three.js).
17- The whole project is the workspace, numbl.org-style: functions next to the
18 running script resolve automatically, other folders via `addpath`.
19- Runs use the current editor contents (saved or not), execute in a Web
20 Worker, and can be stopped with **⏹**.
21- Files a script writes (`fopen`/`fprintf`) appear in the Explorer.
22- The project name in the status bar takes you back to the project list.
24## Development
26minwebide is consumed as a sibling checkout (`file:../minwebide`):
28```sh
29git clone https://github.com/magland/minwebide ../minwebide
30(cd ../minwebide && npm install) # fetches the pinned VS Code source
31npm install
32npm run dev
33```
35- `npm run build` — static bundle in `dist/`
36- `npm run typecheck` — typechecks app code (vendor diagnostics suppressed)
37- `npm run smoke` — headless end-to-end test against the built bundle
38- `bash scripts/generate-builtins.sh` — refresh the syntax-highlighting
39 builtin list after upgrading the `numbl` dependency
41Cross-origin isolation: dev/preview servers send COOP/COEP headers so
42`SharedArrayBuffer` is available (numbl uses it for `pause()` timing). The
43deployed site gets the same via `coi-serviceworker.js`, injected into
44`index.html` only at build time — dev never registers a service worker.
46CI checks out `magland/minwebide` next to this repo, installs both, builds,
47and publishes `dist/` to GitHub Pages.
moveopenescclose