v0.5.2 — Sketch parity, text, mirror, cylinder dimension labels
v0.5.2
Design workspace release covering sketch parity, primitive UX, and performance improvements across PRs #78 and #79.
Sketch
- Mirror tool — mirror any selection of entities across a chosen sketch line. Handles lines, arcs, circles, splines, and rectangles while preserving constraint relationships.
- Text and text-on-path — parametric text using Roboto Regular/Bold/Italic (3 families × 3 weights). Text generates extrudable closed-spline contours; double-click to edit. Text-on-path included.
- Point drag handles — every entity type (line endpoints, arc centre/ends, spline knots) now shows a Fusion-style drag handle. Reshape geometry directly in the viewport while the constraint solver keeps connections consistent.
- Advanced constraints — G2+ smooth continuity, offset curves with live distance dimension, tangent-distance dimensions, angular solver, fixed spline type, break-link, H/V points constraint, and autoConstrain on solve.
- Break/split arc — split arcs at any point; real cubic B-spline curve type for spline-control entities.
- Arc radius editor — floating callout that appears when you click an arc centre dot, letting you edit a fillet radius directly in the viewport.
- Corner fillet geometry — improved tangent-point reconstruction for corner fillets.
Primitives
- Cylinder dimension labels — Fusion 360-style floating dimension badges on the cylinder preview's drag handles. A cyan
20.00 mmbadge on the height arrow and an orangeØ 40.00 mmbadge on the diameter arrow. Both update live during drag and are directly editable (type → Enter to commit). - Primitive operations complete — Box, Cylinder, Sphere, and Torus now fully support Join, Cut, Intersect, and New Component operations against existing bodies.
- Coil and Pipe parity — dialogs completed to Fusion field set.
- Edit from timeline — all primitive dialogs reopen from the timeline for parametric editing.
Viewport & performance
- Memory leak fix — eliminated a
pointermoveevent listener that accumulated on every sketch-interaction mount. - Demand-driven renders — scene re-renders are now demand-driven, cutting idle CPU on complex assemblies.
- Batched constraint glyphs — reduced overlay work while panning.
Toolbar
- Overflow button — RibbonSection shows a
⋯overflow button when not all tools fit in the ribbon. - Active-tool promotion — the active tool automatically promotes into the visible ribbon slot so the selected tool is always shown.
- Flyout close-timing fix — prevents stray menu portals from intercepting canvas clicks after item selection.
Tests
CornerEditingCommit.test.ts— corner editing commit pathsCornerFilletGeometry.test.ts— tangent-point reconstructionFilletRadiusUpdate.test.ts— fillet-radius update round-trips- Extended solver suite with mirror and arc edge cases
Foundation
SketchPointHandles.tsxreplacesSketchSplineHandles.tsx— unified drag handles for all entity types.gizmos/arrowMaterials.ts— singleton arrow materials extracted from PrimitiveBodies.useDraggablePanel/useDraggableDialog— shared draggable panel infrastructure.fontRegistry.ts,sketchTextGenerate.ts,textOnPath.ts— text subsystem utilities.- Roboto font files (Regular/Bold/Italic × 3 families) added to
public/fonts/.