Pascal Editor
Pascal Editor explained: a building model is more than its 3D image
Understand Pascal’s scene graph, plugin-defined building nodes, React Three Fiber viewer and local editor before choosing it for a spatial workflow.
What you will learn
- Separate the model, the picture and the editing operation
- Know which Pascal installation you are evaluating
- Define success in scene terms
Before you start
- Basic scene-graph, JavaScript and HTTP concepts
- An owned small scene with expected dimensions and relationships
Explain the implementation boundary and reproduce the chapter’s checklist or narrow graph exercise.
Key takeaways
- Scene data, rendering and editing are separate layers.
- The inspected renderer has a WebGL fallback path.
- Verify persistence and structure as well as appearance.
Separate the model, the picture and the editing operation
Pascal is a building editor whose packages separate scene data, rendering and editing controls. Its core holds typed nodes and scene state; the viewer turns enabled node definitions into graphics; editor components provide selection and manipulation. A wall is therefore not merely a mesh in a screenshot: its identity, parent, children and geometric parameters participate in a structured model.
The repository uses React Three Fiber and Three.js, with a WebGPU-oriented rendering path. The inspected capability module also attempts WebGL fallback, so describing this revision as WebGPU-only would be inaccurate. Rendering support still depends on the browser, driver and actual scene; a successful capability probe is not proof of visual correctness.
Know which Pascal installation you are evaluating
The published CLI manages a persistent local editor and an authenticated MCP service. The repository also contains reusable core, viewer, editor and node packages, plus capture extensions. Running the complete local application and embedding a Viewer component are different projects with different ownership of storage, controls and service processes.
At the pinned commit, the CLI manifest says 1.0.0-beta.1 while core says 1.0.0-beta.5. The repository includes an MIT license. Record individual package versions instead of assuming every package has one shared version, and do not infer a stable production guarantee from a package being available for installation.
Define success in scene terms
For a small pilot, create a building level with a wall and an opening, save it, reload it and verify both the visible result and the node relationships. A screenshot can show whether an opening looks right, but cannot alone prove persistence, parent-child symmetry or reproducible dimensions. A readable scene file cannot alone prove that the active renderer supports its node kinds.
This series follows fixed source paths for local runtime management, import validation, graph repair, storage and transport guards. We executed dependency-free source helpers and renderer orchestration with injected fakes, not the full editor or a real GPU. The practical exercises describe what to verify next and do not claim that a production installation was tested.
Implementation steps
- 1
Choose local application or embedded viewer deliberately.
- 2
Record package versions and the required node plugin.
- 3
Define a small save/reload and visual acceptance task.
Copy-ready example
{"pilot":"one level, one wall, one opening","checks":["visible opening","stable node IDs","symmetric parent links","save and reload"],"fullEditorExecuted":false}Frequently asked questions
Is Pascal only a Three.js scene viewer?
No. The repository separates rendering from structured building data, editing tools, local runtime management and MCP operations.
Does it require WebGPU with no fallback?
The inspected capability implementation also tries WebGL. That path still needs testing with the intended browser and scene.
Sources
- README.mdSource checked 2026-09-08
- LICENSESource checked 2026-09-08
- packages/cli/package.jsonSource checked 2026-09-08
- packages/core/package.jsonSource checked 2026-09-08
- packages/viewer/README.mdSource checked 2026-09-08
- packages/cli/src/runtime.tsSource checked 2026-09-08
- packages/cli/src/editor-process.tsSource checked 2026-09-08
- packages/cli/src/mcp-connector.tsSource checked 2026-09-08
- packages/mcp/src/transports/http.tsSource checked 2026-09-08
- packages/mcp/src/storage/sqlite-scene-store.tsSource checked 2026-09-08
- packages/core/src/store/use-scene.tsSource checked 2026-09-08
- packages/viewer/src/components/renderers/node-renderer.tsxSource checked 2026-09-08
- packages/viewer/src/lib/renderer-capability.tsSource checked 2026-09-08
- packages/core/src/validation/validate-build-json.tsSource checked 2026-09-08
- packages/core/src/utils/heal-scene-graph.tsSource checked 2026-09-08
- packages/mcp/src/storage/slug.tsSource checked 2026-09-08