Phase 4 updates

Phase 4 · Slice 11 ·

The editor GUI (stage 1 of 3)

the GUI was skipped when Phase 4 moved on to Phase 5; it starts here.

  • tassix_editor_gui (apps/editor): egui 0.37 on our own winit loop and wgpu device through tassix_render::Gpu (not eframe), so the scene view can draw on the same device. It redraws only when egui asks: an open, idle editor uses no CPU.
  • Docking is egui_tiles (egui_dock was still on egui 0.36): Hierarchy, Scene, Inspector, Console and History, tabbed, draggable and closable; Window reopens panes and resets the layout.
  • Hierarchy: the tree with selection, drag onto an object to reparent (world pose kept), onto empty space to unparent; a context menu creates objects (empty, Cube, Sphere, Plane, Camera, lights, each one undo step) and deletes.
  • Inspector: active, name, tag and layer; position, Unity Euler rotation (kept as typed while the rotation matches) and scale; each component's fields by JSON type (checkboxes, number rows that keep integers integers, text, JSON for the rest), unset and add field; Add Component from a list or any script's type name. A drag or typed value is one command when the edit ends, so each is one undo step.
  • File: new, open, save and save as JSON scenes (file dialogs, unsaved-changes prompt, the title shows the scene and a star); Edit: undo and redo with their labels (Ctrl+Z, Ctrl+Y/Ctrl+Shift+Z) and Delete. Failures go to the Console.
  • editor_core gained the scene file format (scene::parse, scene::to_value, Editor::with_scene, moved from the MCP app, which now uses them) and next_free_id, so one batch can create an object and its components.
  • Every input has an accessible name. egui_kittest drives the real UI headlessly through it (create from the menu, undo/redo, rename, field edits, delete, save and reopen, hierarchy selection), and an ignored test renders the editor to target/editor.png.
  • Not yet: the scene view, gizmos and play mode (stage 2); Unity projects, scripts' field metadata in the inspector, and sharing a session with MCP agents with their presence and review in the GUI (stage 3).
  • Next: stage 2: the scene view drawn by tassix_render into an egui texture, a fly camera, selection by clicking, transform-gizmo-egui handles, play mode through the script host.