v0.4.0
pascalorg/editorv0.4.0Apr 7, 2026by open-pascal
AI Summary
Decouples 2D/3D with a new `useLiveTransforms` store and improves UX parity with crash fixes.
Key Highlights
- `useLiveTransforms` store decouples 2D floorplan from 3D scene graph
- 2D stair rendering with tread lines and direction arrows
- Selection highlight system (indigo/purple tint)
- Delete tool UX with red material hover
- Fixes three-mesh-bvh crash from materialIndex overflow
New Features
- 2D stair rendering
- Item footprint rendering in floorplan
- Selection highlight system
- Delete tool UX with D key shortcut and floating trash cursor
- Furnish mode (F key) and Zone mode (Z key)
- Upload + delete for guides/scans
- Stair/stair-segment support in floating action menu
- Box-select includes stair nodes
- Slider precision adapts to modifier keys
- Infinity dragging slider via PointerLock API
- Stair system and scene graph utilities
- Read-only mode
Full Release Notes
## Architecture - **`useLiveTransforms` store** — New lightweight Zustand store in `@pascal-app/core` that holds ephemeral node positions during drag operations. Decouples the 2D floorplan panel from the 3D scene graph. The floorplan no longer imports from Three.js. - Enables future **standalone 2D mode** and **bidirectional split-view editing**. ## Features - **2D stair rendering** with tread lines and direction arrows in the floorplan - **Item footprint rendering** in floorplan with rotated bounding boxes and diagonal cross marks - **Selection highlight system** — indigo/purple tint on selected meshes in 3D - **Delete tool UX** — `D` key shortcut, red material hover, floating trash cursor badge - **Furnish mode** (`F` key) and **Zone mode** (`Z` key) in the action bar - **Upload + delete** for guides/scans in view toggles - **Stair/stair-segment support** in the floating action menu (select, duplicate, delete, move) - **Box-select** now includes stair nodes (bounding box intersection) - **Slider precision** adapts to modifier key step size (shift/alt) - **Editor layout redesign v2** with 3D box select - **Infinity dragging slider** via PointerLock API - **Stair system**, scene graph utilities, read-only mode ## Bug Fixes - Fix **three-mesh-bvh crash** from materialIndex overflow (Sentry EDITOR-M/B, 7,600 events) - **Camera controls null guards** — prevents crash on setLookAt/getTarget/moveTo (Sentry EDITOR-G) - **Pointer lock feature detection** for Facebook/Instagram in-app browsers (Sentry EDITOR-6) - Suppress THREE.Clock deprecation warning from R3F 9.x - Fix stair elevations syncing with floor slabs - Release scene singletons on Editor unmount - Wall-side item bounding box offset fix ## Packages - `@pascal-app/core@0.4.0` - `@pascal-app/viewer@0.4.0` - `@pascal-app/editor@0.4.0` **Full Changelog**: https://github.com/pascalorg/editor/compare/v0.3.3...v0.4.0