@skenora/editor
v0.1.3
Published
Headless scene commands, history, transactions, selection, and property descriptors for Skenora.
Readme
@skenora/editor
Headless SceneDocument authoring for Skenora.
This package is not currently published to npm; the install command below is intended release syntax. The procedural V1 sections describe current repository source and are not covered by the 2026-08-28 package/browser evidence.
pnpm add @skenora/editorThe package provides EditorSession, public EditorCommand factories,
transactions, history, undo/redo, selection, and editable property
descriptors. It has no DOM and does not project documents into Babylon.js.
Session lifecycle additions use EditorPlugin and the dependency-free
@skenora/plugins host. EditorExtension remains as a compatibility alias.
Plugins may register event listeners or other owned effects, and all effects
are released when the plugin or session is disposed.
import { EditorSession, setEnvironmentCommand } from "@skenora/editor";
const editor = new EditorSession(document);
editor.execute(setEnvironmentCommand(nextEnvironment));Create programmatic geometry through the same undoable command boundary:
import { createProceduralEntityCommand } from "@skenora/editor";
editor.execute(
createProceduralEntityCommand({
id: "generated-stage",
program: geometryProgram,
}),
);The command stores a validated skenora.geometry.program@1 in the document;
Runtime owns generated mesh data and GPU projection. Owned material programs
continue to use the existing material commands and explicit bindings.
Persistent scene changes should pass through commands. Use @skenora/sdk for
the ready-made workspace + editor + runtime composition.
See the repository; the current
working-tree guides are docs/EDITOR.md and docs/PROCEDURAL_AI.md.
