v0.3.0
pascalorg/editorv0.3.0Mar 24, 2026by anton-pascal
AI Summary
Introduces a comprehensive 2D editing workflow with a floorplan panel, wall measurement labels, and a rewritten command palette.
Key Highlights
- 2D Floorplan panel for drawing walls and editing zones with grid snapping
- Wall measurement labels with accurate miter geometry in 3D view
- Command palette rewrite with registry-based architecture
- New wall footprint geometry function in core
- Improved selection manager and node action menu
New Features
- 2D Floorplan panel
- Wall measurement labels
- Command palette rewrite
- Wall footprint geometry
- Node action menu
Full Release Notes
## What's new in v0.3.0 ### 2D Floorplan panel A full top-down drafting view for drawing and editing building layouts: - Draw walls with snap-to-grid at 0.5m increments - Place doors and windows directly on walls - Edit zone and slab polygons with vertex and midpoint drag handles - Pan, zoom, marquee selection, multi-select (⌘/Ctrl+click) - Wall endpoint dragging with junction miter recalculation - Overlay reference images as tracing guides - Dark/light theme support ### Wall measurement labels 3D overlay labels that show wall lengths in the viewport. They follow the camera, respect your unit preference (metric/imperial), and account for wall miter geometry so measurements are accurate even at junctions. ### Command palette rewrite Rebuilt from scratch with a registry-based architecture: - `useCommandRegistry` and `usePaletteViewRegistry` stores for extensibility - Commands grouped by category (View, Edit, Navigate, Create) - Visual keyboard shortcut tokens - Navigable pages and full-screen modes ### Wall footprint geometry New `getWallPlanFootprint()` in core — generates miter-aware 2D polygons for walls, used by both the floorplan panel and measurement labels. ### Other improvements - **Node action menu** — quick operations on selected scene nodes - **Selection manager** — improved multi-select with ⌘/Ctrl+click toggle - **Camera focus** — `camera-controls:focus` event centers the camera on a node's bounding box - **Error boundary** — broken item models show a fallback instead of crashing the viewer - **Ground occluder fix** — upper floor shadows no longer bleed through lower levels - **Undo history** — pauses correctly during batch operations (space detection, AI actions) - **Dirty marking** — siblings and parents marked dirty on deletion so wall miters recalculate ### Packages - `@pascal-app/core@0.3.0` — [npm](https://www.npmjs.com/package/@pascal-app/core/v/0.3.0) - `@pascal-app/viewer@0.3.0` — [npm](https://www.npmjs.com/package/@pascal-app/viewer/v/0.3.0) ### Install ```bash npm install @pascal-app/core@0.3.0 @pascal-app/viewer@0.3.0 ``` ### Numbers 95 files changed. +12,379 / −1,394 lines. No breaking changes. --- **Full Changelog**: https://github.com/pascalorg/editor/compare/v0.2.0...v0.3.0