Skip to content

v0.3.1 — UI Polish & Bug Fixes

Choose a tag to compare

@open-pascal open-pascal released this 26 Mar 21:09
· 129 commits to main since this release

What's new in v0.3.1

Slider control rewrite

Complete overhaul of the slider UI component:

  • Drag interaction moved from track bar to label (more intuitive, Blender-style)
  • Defaults to unbounded range — no more artificial min/max clamping
  • Arrow keys (Up/Down/Left/Right) for fine adjustments, Shift for 10× steps, Cmd/Ctrl for 0.1× precision
  • Scroll wheel support on the label area
  • Cleaner, more compact design

ESC key fix

Fixed a long-standing annoyance where pressing Escape during a mid-action (drawing a wall, placing a slab, etc.) would both cancel the current action and switch back to select mode. Now:

  • First ESC cancels the in-progress action (e.g., clears the wall draft)
  • Second ESC switches back to select mode

Affected tools: Wall, Slab, Ceiling, Roof.

STL and OBJ export

New export formats alongside the existing GLB export. Uses Three.js built-in exporters, no new dependencies.

  • STL — standard for 3D printing (physical scale models)
  • OBJ — widely used in rendering pipelines

Three format-specific buttons in the settings panel replace the single export button.

State management fixes

  • Fixed recursive deleteNodesAction that could cause state inconsistencies — now collects all descendants first, deletes in a single batch
  • Fixed memory leak in temporal tracking (prevNodesSnapshot persisted across store re-creations)
  • Fixed requestAnimationFrame in updateNodesAction without cleanup — could queue duplicate callbacks
  • Removed unused debug variable in wall system

Other improvements

  • Ghost wall fixWALL_MIN_LENGTH increased to match grid snap step (0.5m), preventing zero-length wall artifacts that crashed on reload
  • Antialias — re-enabled default antialias on WebGPU renderer
  • Post-processing — cleaned up pipeline code, improved error handling
  • Window panel — removed artificial slider bounds on position, dimension, and frame controls
  • Resize handling — added 100ms debounce for smoother viewport resizing
  • Community setup — added issue/PR templates, CONTRIBUTING.md, simplified SETUP.md

Packages

  • @pascal-app/core@0.3.1npm
  • @pascal-app/viewer@0.3.1npm

Install

npm install @pascal-app/core@0.3.1 @pascal-app/viewer@0.3.1

Numbers

29 files changed. +689 / −695 lines. No breaking changes.


Full Changelog: v0.3.0...v0.3.1