isokit: web Studio (engine as WASM, projects in the browser or a live folder)
- isokit-wasm: wasm-bindgen build of the engine; a project in memory behind the same JSON API as `isokit studio`, plus the MCP tools - isokit-project: Store trait (FsStore folder, MemStore memory) under a generic Workspace; Project::from_files; shared Studio API module (api.rs) used by serve.rs and the WASM build; web_time for clocks in the browser - studio.js runs on a pluggable backend (window.IsoKitBackend); no Studio keys while a dialog is open - web/: projects in IndexedDB, new/demo/delete, zip export/import (stored and deflated), folder import by drop or picker, folders opened live via File System Access with outside edits followed, code editor, page build and preview, two tabs in step, isokit.mcp() and WebMCP registration - tools/build_web.py -> dist/web (static), tools/check_web.py (44 checks)
This commit is contained in:
1 parent
564aeb75f6
commit
5eb60d2a0c
20 files changed
+1950
-178
No files matched your search
+18
-3
@@ -22,6 +22,20 @@ Each phase ends with tests, a Studio/viewer check in Edge, commit and push.
|
||||
- [x] MCP: 15 tools over stdio and HTTP (`/mcp`), validation messages for agents
|
||||
- [x] Demo project, 52 Rust tests, Playwright Studio + MCP test
|
||||
|
||||
## Web Studio (done)
|
||||
|
||||
- [x] `isokit-wasm`: the engine in the browser (wasm-bindgen, 2.8 MB / 0.75 MB gzipped); `Store`
|
||||
trait (folder or memory) under the `Workspace`; Studio JSON API shared with `isokit studio`
|
||||
- [x] `studio.js` runs on a pluggable backend; the web shell answers it from WASM
|
||||
- [x] Projects in IndexedDB; new, demo copy, delete; export / import `.zip` (stored or deflated) and
|
||||
folders (drop or pick); two tabs on one project stay in step
|
||||
- [x] Folder projects (File System Access, Chrome / Edge): edits written to disk, outside changes
|
||||
followed live and undoable, Build page writes `dist/index.html`
|
||||
- [x] Code editor for scripts, prefabs, theme and manifest, with script errors by file and line
|
||||
- [x] MCP tools inside the page (`isokit.mcp`), WebMCP registration when the browser offers it
|
||||
- [x] `tools/build_web.py` (static output), `tools/check_web.py` (44 checks, Edge)
|
||||
- [ ] Deploy a hosted copy; render in a Web Worker for very large scenes
|
||||
|
||||
## Phase 2: richer editing
|
||||
|
||||
- [ ] Interior prefabs (desk, table with chairs, shelf, machine, bed, sofa, partition walls) and a
|
||||
@@ -35,8 +49,9 @@ Each phase ends with tests, a Studio/viewer check in Edge, commit and push.
|
||||
|
||||
## Phase 3: embedding in the other projects
|
||||
|
||||
- [ ] WASM build of isokit-script + core: the same scene recomputes in the browser when a host
|
||||
page's calculator changes the parameters (cnx_vinyl fleet calculator)
|
||||
- [ ] Host pages on the WASM build (`isokit-wasm` exists, see Web Studio): the same scene
|
||||
recomputes in the browser when a host page's calculator changes the parameters (cnx_vinyl
|
||||
fleet calculator)
|
||||
- [ ] `isokit build --fragment`: `<style>` + `<script>` blocks for the Python build scripts of the
|
||||
host pages (replace `inline.py`)
|
||||
- [ ] Host API parity with CNXIso (`mount`, `update(cfg)`, `setLevel`, `focus`, `info`, `onPick`)
|
||||
@@ -50,4 +65,4 @@ Each phase ends with tests, a Studio/viewer check in Edge, commit and push.
|
||||
- [ ] `isokit check` rules from the QA checklist: props on paved areas, runs ending in the air,
|
||||
covers drawn over their contents, tag overlaps
|
||||
- [ ] Performance budget test (render ms per view, 60 fps pan) on a 3,500-node scene
|
||||
- [ ] Packaged desktop app (Tauri) for users without a terminal; hosted Studio behind login
|
||||
- [ ] Packaged desktop app (Tauri); shared projects for the hosted web Studio (behind login)
|
||||
Reference in new issue
Block a user