Skip to content

v0.0.0.5-alpha — macOS Canvas UX sprint II

Pre-release
Pre-release

Choose a tag to compare

@nghiazer nghiazer released this 06 Jun 17:40
59eb80f

macOS — v0.0.0.5-alpha

New features

Multi-select & Group

  • Lasso selection — left-drag on empty canvas draws a rubber-band rectangle; all pieces with any vertex inside are selected. Shift+drag = additive.
  • Group / Ungroup — select 2+ pieces → Group button assigns a shared userGroupId; grouped pieces move together on drag. Groups are persisted in the .4hu project bundle (userGroups field).
  • Right-drag pan — right mouse button drag pans the canvas (replaces the old left-drag-everywhere pan).

Rotate handle

  • When 1 piece or 1 group is selected, a handle appears 44 pt above the centroid with an orange dashed stem.
  • Drag the handle to rotate around the effective centroid. Single piece: only pieceRotations updated. Group: all pieces rotate as a rigid body (both pieceRotations and pieceOffsets updated per piece).

Smart join / disjoin

  • Disjoin (fold → cut): separated piece is nudged +30 mm right/down so it doesn't overlap the parent, instead of auto-arranging everything.
  • Join (cut → fold): click 1 shows a dashed preview arrow between piece centroids (mouse proximity determines anchor/moving direction); any click 2 confirms the join and snaps the merged piece to the anchor's old position.

Bug fixes (since v0.0.0.1-alpha)

  • Pieces no longer collapse on first edge/flap click after unfold
  • Page grid now expands dynamically when dragging pieces beyond boundaries
  • Flap direction corrected (was inward, now outward)
  • App no longer auto-unfolds on mesh load

Build info

  • Branch: feat/unfold-size-dialog
  • Commit: 8f8cb35
  • 87 unit tests passing
  • macOS 13 Ventura or later required
  • Ad-hoc signed — right-click → Open on first launch

Installation

  1. Download 4H-Unfolder_v0.0.0.5-alpha_mac.zip
  2. Unzip and drag 4H Unfolder.app to Applications
  3. First launch: right-click → Open (bypasses Gatekeeper for unsigned builds)