Editor's Path Properties has a 'Density' slider but no 'Stitch length' field — embroidery exports typically specify stitch length in mm (e.g., 3.0 mm), the editor's 0-1 density doesn't expose this #351

Closed
opened 2026-10-04 03:56:11 +00:00 by Mark · 1 comment
Owner

Finding

The Path Properties section has a Density slider (0-1, unitless). The export service (per easystitch-client.ts) likely uses stitch length in mm (e.g., 3.0 mm for typical stitches).

grep -rn 'stitchLength\|stitch_length' src/components/editor/ returns 0.

A user with embroidery experience:

  • Thinks in "3 mm stitches" or "4 mm stitches"
  • Doesn't know how to map 0-1 density to mm
  • Wishes the editor exposed stitch length directly

The fix is to show the equivalent stitch length in mm alongside the density slider (per #317's "show in mm" toggle).

Where

  • Density slider: src/components/editor/EditorRightPanel.tsx
  • No stitch length: grep -rn 'stitchLength' src/components/editor/ returns 0
  • The export: src/lib/easystitch-client.ts:exportPES (likely takes stitch length as input)

Suggested fix shape

  1. UI: next to the density slider, a "Stitch length" display:
<SliderField
  label="Density"
  value={density}
  onChange={onChangeDensity}
  min={0.1}
  max={1.0}
  step={0.05}
/>
<div className="text-[10px]" style={{ color: '#6B6560' }}>
  ≈ {(1 / Math.max(density, 0.1)).toFixed(1)} mm stitch length
</div>
  1. OR: a separate "Stitch length" input that controls the same value:
<NumberField
  label="Stitch length"
  value={stitchLength}
  onChange={(v) => onChangeDensity(1 / v)}
  min={1}
  max={10}
  step={0.1}
  unit="mm"
/>
  1. Mapping: density = 1 / stitchLength (approximate; the export may use a different formula).

  2. Use cases:

  • Embroidery conventions are in mm
  • The export file format is in mm

Severity

Low. The user can convert. Power users with embroidery experience notice.

Discovered by

Gap analysis (2026-10-02) of editor path properties.

  • #317 (open) — Density in mm. Same family.
  • #314 (open) — Satin width. Same embroidery-specific parameters.
  • The export's stitch length is what matters; the editor's density is the abstraction.
## Finding The Path Properties section has a Density slider (0-1, unitless). The export service (per `easystitch-client.ts`) likely uses stitch length in mm (e.g., 3.0 mm for typical stitches). `grep -rn 'stitchLength\|stitch_length' src/components/editor/` returns 0. A user with embroidery experience: - Thinks in "3 mm stitches" or "4 mm stitches" - Doesn't know how to map 0-1 density to mm - Wishes the editor exposed stitch length directly The fix is to show the equivalent stitch length in mm alongside the density slider (per #317's "show in mm" toggle). ## Where - Density slider: `src/components/editor/EditorRightPanel.tsx` - No stitch length: `grep -rn 'stitchLength' src/components/editor/` returns 0 - The export: `src/lib/easystitch-client.ts:exportPES` (likely takes stitch length as input) ## Suggested fix shape 1. **UI**: next to the density slider, a "Stitch length" display: ```tsx <SliderField label="Density" value={density} onChange={onChangeDensity} min={0.1} max={1.0} step={0.05} /> <div className="text-[10px]" style={{ color: '#6B6560' }}> ≈ {(1 / Math.max(density, 0.1)).toFixed(1)} mm stitch length </div> ``` 2. **OR**: a separate "Stitch length" input that controls the same value: ```tsx <NumberField label="Stitch length" value={stitchLength} onChange={(v) => onChangeDensity(1 / v)} min={1} max={10} step={0.1} unit="mm" /> ``` 3. **Mapping**: `density = 1 / stitchLength` (approximate; the export may use a different formula). 4. **Use cases**: - Embroidery conventions are in mm - The export file format is in mm ## Severity Low. The user can convert. Power users with embroidery experience notice. ## Discovered by Gap analysis (2026-10-02) of editor path properties. ## Related - #317 (open) — Density in mm. Same family. - #314 (open) — Satin width. Same embroidery-specific parameters. - The export's stitch length is what matters; the editor's density is the abstraction.
Author
Owner

Closing as duplicate of #317 — both filed as 'density 0-1 should show in mm.' Same underlying gap; the implementation (a unit toggle / mm display) is one change. Keeping #317 as the umbrella.

Closing as duplicate of #317 — both filed as 'density 0-1 should show in mm.' Same underlying gap; the implementation (a unit toggle / mm display) is one change. Keeping #317 as the umbrella.
Mark closed this issue 2026-10-04 04:12:58 +00:00
Sign in to join this conversation.
No description provided.