Tutorial 20: Basic visual editor
Level: Beginner Time: 10 minutes
Run Node 24, install workspace dependencies, build the libraries, and start pnpm --filter editor dev. The editor is a desktop authoring application; its basic workflow is tested in Chromium, Firefox and WebKit.
- Select a node in the hierarchy or click an object in the viewport.
- Add a group, box, sphere or plane. New objects attach under the selection, or the scene root.
- Edit Name and Parent; cycles are rejected without changing the scene.
- Edit position, XYZ Euler rotation in degrees and scale. Core continues storing quaternions.
- Edit material color, opacity, roughness, metalness or double-sided rendering.
- Use W/E/R to move, rotate or scale with gizmos. View navigation uses an independent camera.
- Duplicate or delete nodes. Ctrl/Cmd+Z undoes and Ctrl/Cmd+Shift+Z or Ctrl+Y redoes. One gizmo drag is one command.
- Save JSON. Omitted runtime data triggers a warning before downloading.
- Load a valid scene. Viewport, hierarchy, selection and inspector switch together and history resets. Invalid files retain the current scene; replacing unsaved data requires confirmation.
EditorController owns the current scene, selection and reversible history. UI and renderer subscribe to that same state. Renderer, gizmos, observers, listeners and RAF are released on unmount.
The format is the existing public serialize() JSON shape. External assets, scripts, live playback/physics state and unsupported components require reconstruction. Duplicating a subtree creates new IDs but does not automatically retarget animation/bone names.
Timeline, project asset packaging and collaborative editing are outside this delivery. See capabilities and acceptance.