v0.9.0
AprilNEA/OpenLogiv0.9.0May 27, 2026by Aymericr
AI Summary
This release focuses on architectural improvements with a node registry plugin system and in-world selection handles for detailed editing. Key additions include an IFC to Pascal converter, Solid/Rendered render modes, and a complete elevator system with cab controls.
Key Highlights
- In-world selection handles for resizing and moving walls, doors, and stairs.
- Full IFC importer and Solid/Rendered render modes with themes.
- Complete elevator system with floorplan overlay and cab door controls.
- Node registry and plugin architecture for extensibility.
New Features
- In-world selection handles for walls, doors, windows, stairs, and more.
- Viewer render modes including Solid, Rendered, and edge passes.
- Six new roof accessories (chimney, dormer, skylight, etc.).
- IFC to Pascal converter package and application.
- Elevator system with runtime and first-person support.
- Node registry and plugin architecture for node definitions.
- Stair opening system and expanded material library.
Full Release Notes
## 🏗️ Pascal Editor v0.9.0 — In-World Handles, Render Modes & IFC Importer This release ships the **node-registry plugin architecture**, **in-world selection handles**, a full **IFC → Pascal importer**, **Solid/Rendered render modes**, **six roof accessories**, a complete **elevator system**, and an expanded material library. ### ✨ Features - **In-world selection handles** — resize arrows and floorplan move handles for wall, door, window, stair, fence, elevator, column, shelf, roof segments, slab, and ceiling. New `NodeDefinition.handles` descriptor and `EditorApi` IoC interface ([#334](https://github.com/pascalorg/editor/pull/334)) - **Viewer render modes** — Solid / Rendered toggle, surface-role clay materials, scene themes (light / dark), textured surfaces, edge + ink pass ([#332](https://github.com/pascalorg/editor/pull/332)) - **Six roof accessories** — chimney, dormer, skylight, solar-panel, ridge-vent, box-vent as first-class `NodeDefinition` kinds with CSG roof cuts ([#330](https://github.com/pascalorg/editor/pull/330)) - **IFC → Pascal converter** — new `packages/ifc-converter` package and `apps/ifc-converter` app; imports IFCWALL dimensions and profile-typed columns ([#324](https://github.com/pascalorg/editor/pull/324)) - **Elevator system** — full floorplan overlay, cab door controls, runtime, first-person support, and viewer rebuild handling ([#305](https://github.com/pascalorg/editor/pull/305), [#307](https://github.com/pascalorg/editor/pull/307)) - **Node registry & plugin architecture** — `NodeDefinition` registry, per-kind `packages/nodes` structure, plugin-authoring guide ([#314](https://github.com/pascalorg/editor/pull/314)) - **Stair opening system** — automatic stair-hole updates, spiral stair openings clamped at full sweep ([#315](https://github.com/pascalorg/editor/pull/315)) - **Material library** — brick, stone, terrazzo, tile, parquet and wood textures; roofing and flooring catalog refactor ([#315](https://github.com/pascalorg/editor/pull/315)) - **Procedural column variants** — editor copy/paste and wall junction planning improvements ([#302](https://github.com/pascalorg/editor/pull/302)) - **Wall-driven auto slab + ceiling sync** — pause/resume primitive for programmatic batch edits ([#336](https://github.com/pascalorg/editor/pull/336)) - **Load Build verification dialog** — gate destructive load behind a confirmation step ([#320](https://github.com/pascalorg/editor/pull/320)) ### 🐛 Fixes - MCP: templates now use string IDs for `SiteNode.children` ([#326](https://github.com/pascalorg/editor/pull/326), [#325](https://github.com/pascalorg/editor/pull/325)) - Fence tool handlers restored after null-guard regression ([#318](https://github.com/pascalorg/editor/pull/318)) - IFC converter: broken Contributions GitHub URL ([#335](https://github.com/pascalorg/editor/pull/335)) - Max panel height overflow ([#304](https://github.com/pascalorg/editor/pull/304)) - Performance: lighter materials, reduced viewer rendering cost ([#306](https://github.com/pascalorg/editor/pull/306)) ### 📦 Packages | Package | Version | |---|---| | `@pascal-app/core` | `0.9.0` | | `@pascal-app/viewer` | `0.9.0` | | `@pascal-app/editor` | `0.9.0` | | `@pascal-app/mcp` | `0.3.0` | | `@pascal-app/ifc-converter` | `0.1.0` ← new package | ### 🙏 Contributors A huge thank you to our contributors for this release! - [@sudhir9297](https://github.com/sudhir9297) — in-world selection handles, roof accessories, elevator system, column variants ([#334](https://github.com/pascalorg/editor/pull/334), [#330](https://github.com/pascalorg/editor/pull/330), [#305](https://github.com/pascalorg/editor/pull/305), [#302](https://github.com/pascalorg/editor/pull/302)) - [@wass08](https://github.com/wass08) — viewer render modes, IFC converter, node registry, and many fixes ([#332](https://github.com/pascalorg/editor/pull/332), [#324](https://github.com/pascalorg/editor/pull/324), [#314](https://github.com/pascalorg/editor/pull/314), [#336](https://github.com/pascalorg/editor/pull/336), [#320](https://github.com/pascalorg/editor/pull/320), [#318](https://github.com/pascalorg/editor/pull/318), [#307](https://github.com/pascalorg/editor/pull/307), [#306](https://github.com/pascalorg/editor/pull/306), [#304](https://github.com/pascalorg/editor/pull/304)) - [@jelharou](https://github.com/jelharou) — MCP string-ID fix for `SiteNode.children` ([#326](https://github.com/pascalorg/editor/pull/326)) **Full Changelog**: https://github.com/pascalorg/editor/compare/v0.8.0...v0.9.0