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