v0.9.1

plait-board/drawnixv0.9.1Jun 10, 2026by Aymericr

AI Summary

This release introduces a comprehensive preset system for capturing and placing builds, alongside a major overhaul of building manipulation tools. It also enhances the editor's UX with studio mode improvements, sound design, and viewer shadow optimizations, while resolving several infrastructure and dependency issues.

Key Highlights

  • First-class preset system with hierarchical browsing and thumbnails
  • Building manipulation overhaul including rotation and unified handles
  • Studio mode and consolidated display controls
  • Enhanced viewer shadows and sound design
  • Dependency refresh and null-safety hardening

New Features

  • Preset system for capturing and placing builds
  • Rooms and templates functionality
  • Building manipulation overhaul (rotation, unified handles)
  • Studio mode and inspector UX improvements
  • Sound design (structure cues, SFX)
  • Roof accessories (gutters, vents)
  • Viewer shadow improvements
  • Fence presets

Full Release Notes

## 🏗️ Pascal Editor v0.9.1 — Preset System, Rooms & Templates, Building Manipulation

This release ships a first-class **preset system**, **room presets & template scans**, a deep **building-manipulation overhaul** (rotation, unified handles, tap-to-engage move), **editor sound design**, **viewer shadow improvements**, and a full **dependency/security refresh**. It also publishes the npm packages announced in v0.9.0 — everything lands on the registry as 0.9.1.

### ✨ Features

- **Preset system** — capture builds as presets with framing + zoom-limited thumbnails, browse them in a hierarchical function-tree with an icon-grid category bar, and place them with parameters, move tool, shadows, isolation, and a green/red validity box ([#341](https://github.com/pascalorg/editor/pull/341), [#344](https://github.com/pascalorg/editor/pull/344), [#345](https://github.com/pascalorg/editor/pull/345), [#349](https://github.com/pascalorg/editor/pull/349), [#354](https://github.com/pascalorg/editor/pull/354), [#357](https://github.com/pascalorg/editor/pull/357), [#366](https://github.com/pascalorg/editor/pull/366))
- **Rooms & templates** — save furnished rooms as reusable presets; template scans feed the same workflow ([#390](https://github.com/pascalorg/editor/pull/390))
- **Building manipulation overhaul** — whole-building rotation with world-grid alignment, alt-click single-wall selection, tap-to-engage move ([#388](https://github.com/pascalorg/editor/pull/388)); live floor-stacking previews, unified handle system + hit areas, NaN-safe node mutations ([#375](https://github.com/pascalorg/editor/pull/375)); persistent site boundary handles ([#386](https://github.com/pascalorg/editor/pull/386)); alignment guides + floor-plan/3D placement parity ([#372](https://github.com/pascalorg/editor/pull/372)); level-scoped alignment, reference-floor symbols & registry slab tool ([#373](https://github.com/pascalorg/editor/pull/373))
- **Studio mode & inspector UX** — studio mode, consolidated Display + References controls ([#364](https://github.com/pascalorg/editor/pull/364), [#370](https://github.com/pascalorg/editor/pull/370)); build sidebar + slimmed items panel for the standalone editor ([#361](https://github.com/pascalorg/editor/pull/361)); vertical icon rail + headless inspector footer slot ([#350](https://github.com/pascalorg/editor/pull/350))
- **Sound design** — structure build start/end cues, menu hover/click SFX ([#378](https://github.com/pascalorg/editor/pull/378)); per-kind delete sounds incl. shelf items ([#379](https://github.com/pascalorg/editor/pull/379), [#381](https://github.com/pascalorg/editor/pull/381))
- **Roof accessories** — gutters, downspouts & vents with gizmos ([#355](https://github.com/pascalorg/editor/pull/355))
- **Viewer shadows** — shadow frustum fitted to building geometry and centered on focus ([#347](https://github.com/pascalorg/editor/pull/347), [#348](https://github.com/pascalorg/editor/pull/348))
- **Fence presets** — tool-defaults seeding + `drawTool` capability ([#346](https://github.com/pascalorg/editor/pull/346))

### 🐛 Fixes

- Camera ↔ floor-plan navigation sync, both directions ([#387](https://github.com/pascalorg/editor/pull/387))
- Editor interaction, loading, walkthrough, and IFC cleanup ([#385](https://github.com/pascalorg/editor/pull/385))
- Relative move grab offsets + fresh placement commits ([#383](https://github.com/pascalorg/editor/pull/383))
- Stair openings, roof-segment grid snap, 3D box selection, unit-aware alignment guides ([#380](https://github.com/pascalorg/editor/pull/380))
- Slab side walls render solid regardless of polygon winding ([#377](https://github.com/pascalorg/editor/pull/377)); outline polygon edit handles + vertex grab ([#365](https://github.com/pascalorg/editor/pull/365))
- Null-safety hardening across placement, cursor groups, box-select, and container renderers ([#313](https://github.com/pascalorg/editor/pull/313), [#323](https://github.com/pascalorg/editor/pull/323), [#333](https://github.com/pascalorg/editor/pull/333), [#342](https://github.com/pascalorg/editor/pull/342), [#359](https://github.com/pascalorg/editor/pull/359)); legacy door nodes normalized against the schema ([#303](https://github.com/pascalorg/editor/pull/303))
- Nodes test suite repaired under bun ([#360](https://github.com/pascalorg/editor/pull/360)); stale registry + stair-opening tests updated ([#358](https://github.com/pascalorg/editor/pull/358))

### 🧰 Infrastructure

- CI: lint + typecheck workflow ([#369](https://github.com/pascalorg/editor/pull/369))
- June 2026 dependency refresh — next 16.2.6 (12+ security advisories patched; 16.2.7 deliberately held back for a Turbopack dev route-matching regression), TypeScript 6.0.3 everywhere, single-three dedupe, dead-dependency removal ([#389](https://github.com/pascalorg/editor/pull/389))
- Architecture: enforced layer boundaries — ceiling dispatch, store relocation, shared helpers ([#382](https://github.com/pascalorg/editor/pull/382)); MCP plan↔world coordinate convention documented ([#356](https://github.com/pascalorg/editor/pull/356))

### 📦 Packages

| Package | Version |
|---|---|
| `@pascal-app/core` | `0.9.1` |
| `@pascal-app/viewer` | `0.9.1` |
| `@pascal-app/editor` | `0.9.1` |
| `@pascal-app/mcp` | `0.3.1` |
| `@pascal-app/ifc-converter` | `0.1.1` |

> The 0.9.0 versions announced in the previous release never reached npm — they ship here as 0.9.1.

### 🙏 Contributors

A huge thank you to our contributors for this release!

- [@sudhir9297](https://github.com/sudhir9297) — building-manipulation overhaul, alignment guides, level-scoped alignment & registry slab tool, layer-boundary architecture ([#388](https://github.com/pascalorg/editor/pull/388), [#372](https://github.com/pascalorg/editor/pull/372), [#373](https://github.com/pascalorg/editor/pull/373), [#382](https://github.com/pascalorg/editor/pull/382))
- [@wass08](https://github.com/wass08) — rooms & templates, the preset-system wave, studio mode, sound design, shadow improvements, and many fixes ([#390](https://github.com/pascalorg/editor/pull/390), [#387](https://github.com/pascalorg/editor/pull/387), [#385](https://github.com/pascalorg/editor/pull/385), [#378](https://github.com/pascalorg/editor/pull/378), [#364](https://github.com/pascalorg/editor/pull/364), [#357](https://github.com/pascalorg/editor/pull/357), [#354](https://github.com/pascalorg/editor/pull/354), [#341](https://github.com/pascalorg/editor/pull/341))
- [@anton-pascal](https://github.com/anton-pascal) — null-safety hardening wave across viewer, editor, and nodes ([#303](https://github.com/pascalorg/editor/pull/303), [#313](https://github.com/pascalorg/editor/pull/313), [#323](https://github.com/pascalorg/editor/pull/323), [#333](https://github.com/pascalorg/editor/pull/333), [#342](https://github.com/pascalorg/editor/pull/342))
- [@marcelgruber](https://github.com/marcelgruber) — MCP plan↔world coordinate convention docs ([#356](https://github.com/pascalorg/editor/pull/356))

**Full Changelog**: https://github.com/pascalorg/editor/compare/v0.9.0...v0.9.1