isokit: project layer, Studio GUI, MCP server, viewer, CLI, demo project and docs
This commit is contained in:
1 parent
95c80ec6b1
commit
564aeb75f6
47 files changed
+5978
-366
No files matched your search
@@ -0,0 +1,53 @@
|
||||
# Roadmap
|
||||
|
||||
Each phase ends with tests, a Studio/viewer check in Edge, commit and push.
|
||||
|
||||
## Phase 1: engine, Studio, MCP (done)
|
||||
|
||||
- [x] Core: projection with 4 rotations, primitives (box, prism, cylinder, frustum, face, poly, flat,
|
||||
openings, lines, disc, circle, stem, figures, puffs, fan, raw, groups, sequences), sprites with
|
||||
90° object frames, depth sort ported from the JS views, SVG writer, tags, tooltips
|
||||
- [x] Theme: built-in palette, materials and rules converted from the Mooban/CNX CSS; TOML overrides
|
||||
- [x] Rhai runtime: drawing API, module imports from memory, errors with file:line, safety limits
|
||||
- [x] Prefab library: site, area, road, parking, wall, fence, lamp, marker, tree, tree row, hedge,
|
||||
building (storeys, windows, door, flat/gable roof, solar, AC, cut-open levels), carport, shed,
|
||||
car (driving), truck, motorbike, person, crowd, tank, container, generator, solar field, chimney
|
||||
- [x] Scene document + prefab catalog with property schemas
|
||||
- [x] Project folder, ops (add/update/remove/duplicate/reorder/set_cfg/replace), Workspace (save, undo,
|
||||
reload on outside changes), check, static HTML page, SVG export
|
||||
- [x] Viewer JS: port of the views' mount() (pan, pinch, wheel, declutter, tooltips, full screen) for
|
||||
prerendered, server and future WASM sources
|
||||
- [x] Studio GUI: palette, object list, placing, drag-to-move with snap, keyboard, forms from schemas,
|
||||
levels, undo/redo, live follow of agent edits, MCP connection panel
|
||||
- [x] MCP: 15 tools over stdio and HTTP (`/mcp`), validation messages for agents
|
||||
- [x] Demo project, 52 Rust tests, Playwright Studio + MCP test
|
||||
|
||||
## Phase 2: richer editing
|
||||
|
||||
- [ ] Interior prefabs (desk, table with chairs, shelf, machine, bed, sofa, partition walls) and a
|
||||
building `rooms` prop, so the GF/1F levels show something
|
||||
- [ ] Path objects in the Studio: click points for areas, roads (polyline with width), fences, walls,
|
||||
pipe runs; vertex handles
|
||||
- [ ] Multi-select (box select, Shift-click), group move, align/distribute
|
||||
- [ ] Copy/paste between projects; prefab thumbnails in the palette (rendered icons)
|
||||
- [ ] Measure tool and grid overlay; numeric resize handles on the selection
|
||||
- [ ] Studio editor for `theme.toml` (colour pickers) and for project parameters
|
||||
|
||||
## 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)
|
||||
- [ ] `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`)
|
||||
- [ ] Port the existing scenes: mooban estate, CNX Scuba centre (section cut), CNX Vinyl plant;
|
||||
check each against its old view with the QA checklist from the skill
|
||||
|
||||
## Phase 4: output and QA
|
||||
|
||||
- [ ] Section cut layer (underground scenes) from iso-scuba: cut plane, clip-path per cavity
|
||||
- [ ] PNG export (static style resolution + resvg) so agents get an image from `render_view`
|
||||
- [ ] `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
|
||||
Reference in new issue
Block a user