From 2e26069a35085c4fa961a0f7bbff694ac2adfac1 Mon Sep 17 00:00:00 2001 From: Mitchell Hansen Date: Thu, 30 Apr 2026 01:42:40 -0700 Subject: [PATCH] update --- Cargo.toml | 2 + resources/images/navyseal.jpg | Bin 0 -> 191697 bytes src-frontend/src/App.jsx | 156 +- .../src/components/CalibrationAxis.jsx | 137 ++ .../src/components/CalibrationButtons.jsx | 104 + .../src/components/ChordalDebugView.jsx | 505 +++++ src-frontend/src/components/PrinterPanel.jsx | 265 +++ .../src/components/TextEditOverlay.jsx | 319 +++ src-frontend/src/components/TuningPanel.jsx | 153 ++ src-frontend/src/components/Viewport.jsx | 65 +- src-frontend/src/hooks/useTauri.js | 91 + src-frontend/src/lib/hershey.js | 110 + src-frontend/src/lib/hershey.test.js | 47 + src-frontend/src/project.js | 18 +- src-frontend/src/project.test.js | 1 + src-frontend/src/store.js | 34 +- src/fill.rs | 1894 ++++++++++++++++- src/gcode.rs | 36 +- src/lib.rs | 918 +++++++- src/text.rs | 241 +++ tests/text_parity.rs | 77 + 21 files changed, 5033 insertions(+), 140 deletions(-) create mode 100644 resources/images/navyseal.jpg create mode 100644 src-frontend/src/components/CalibrationAxis.jsx create mode 100644 src-frontend/src/components/CalibrationButtons.jsx create mode 100644 src-frontend/src/components/ChordalDebugView.jsx create mode 100644 src-frontend/src/components/PrinterPanel.jsx create mode 100644 src-frontend/src/components/TextEditOverlay.jsx create mode 100644 src-frontend/src/components/TuningPanel.jsx create mode 100644 src-frontend/src/lib/hershey.js create mode 100644 src-frontend/src/lib/hershey.test.js create mode 100644 src/text.rs create mode 100644 tests/text_parity.rs diff --git a/Cargo.toml b/Cargo.toml index 27d8360a..4dd5b5ce 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,8 @@ base64 = "0.22" log = "0.4" env_logger = "0.11" reqwest = { version = "0.12", default-features = false, features = ["multipart", "rustls-tls", "blocking"] } +tungstenite = { version = "0.24", default-features = false, features = ["handshake"] } +spade = "2" [profile.dev] opt-level = 2 diff --git a/resources/images/navyseal.jpg b/resources/images/navyseal.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4662f4b6098ec049ae7fc5b140f8f583248b6134 GIT binary patch literal 191697 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 O(itpx*V?{~qj@Asc1L(g5zof4Py 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 JWCZ*f{Xeu<{)qqp literal 0 HcmV?d00001 diff --git a/src-frontend/src/App.jsx b/src-frontend/src/App.jsx index 44ad5780..15ef234f 100644 --- a/src-frontend/src/App.jsx +++ b/src-frontend/src/App.jsx @@ -1,15 +1,21 @@ import { useState, useCallback, useEffect, useRef } from 'react' import Viewport from './components/Viewport.jsx' +import PrinterPanel from './components/PrinterPanel.jsx' +import TuningPanel from './components/TuningPanel.jsx' +import CalibrationButtons from './components/CalibrationButtons.jsx' +import CalibrationAxis from './components/CalibrationAxis.jsx' +import TextEditOverlay from './components/TextEditOverlay.jsx' +import ChordalDebugView from './components/ChordalDebugView.jsx' import NodeGraph from './components/NodeGraph.jsx' import PassPanel from './components/PassPanel.jsx' import PerfPanel from './components/PerfPanel.jsx' import Slider from './components/Slider.jsx' -import { defaultPass, defaultGcodeConfig, PAPER_SIZES } from './store.js' +import { defaultPass, defaultGcodeConfig, PAPER_SIZES, centerPaperOnBed } from './store.js' import * as tauri from './hooks/useTauri.js' import { serialize, deserialize } from './project.js' import { useFps } from './hooks/useFps.js' -const VIEW_MODES = ['source', 'detection', 'contours', 'gcode'] +const VIEW_MODES = ['source', 'detection', 'contours', 'gcode', 'chordal', 'printer', 'tuning'] export default function App() { const [image, setImage] = useState(null) @@ -30,8 +36,45 @@ export default function App() { const [nodeWidth, setNodeWidth] = useState(450) const [dpi, setDpi] = useState(150) const [projectPath, setProjectPath] = useState(null) // null = unsaved + const [sourceMode, setSourceMode] = useState('image') // 'image' | 'text' + const [textBlocks, setTextBlocks] = useState([ + // Sensible defaults for #10 envelope addressing. + { text: 'Your Name\n123 Your St\nYour City, ST 12345', + font_size_mm: 3, line_spacing_mm: 5, x_mm: 8, y_mm: 8 }, + { text: 'Recipient Name\n456 Their St\nTheir City, ST 67890', + font_size_mm: 5, line_spacing_mm: 8, x_mm: 35, y_mm: 95 }, + ]) const resizing = useRef(false) + // True when the project has something to plot. In text mode, "ready" = + // pipeline has produced strokes; just having text doesn't guarantee the + // graph processed it yet. Same check as image mode. + const hasOutput = passes.some(p => p.strokeCount > 0) + + // When in text mode, rasterise blocks into a paper-sized image source + // (debounced) and trigger pipeline processing on the new image. The + // image flows through Source → Kernel → Hull → Fill like any other. + useEffect(() => { + if (sourceMode !== 'text') return + const t = setTimeout(async () => { + try { + const info = await tauri.setTextBlocks( + textBlocks, + gcodeConfig.paper_w_mm, + gcodeConfig.paper_h_mm, + dpi, + /* strokeThicknessPx */ Math.max(2, Math.round(dpi / 50)), + ) + setImage(info) + setStrokes(null) + scheduleProcessRef.current?.() + } catch (e) { + setGlobalStatus(`Text render error: ${e.message ?? e}`) + } + }, 350) + return () => clearTimeout(t) + }, [sourceMode, textBlocks, gcodeConfig.paper_w_mm, gcodeConfig.paper_h_mm, dpi]) + // Ctrl+S / Ctrl+Shift+S — ref pattern keeps listener stable across renders const saveProjectRef = useRef(null) saveProjectRef.current = saveProject @@ -200,6 +243,11 @@ export default function App() { debounceTimers.current['detect'] = setTimeout(() => processPass(0, true), 400) }, [processPass]) + // Ref so other effects (e.g. text-source rasterise) can poke the same + // debounced reprocess without depending on the function identity. + const scheduleProcessRef = useRef(scheduleProcess) + scheduleProcessRef.current = scheduleProcess + useEffect(() => { if (imageRef.current) scheduleProcess() }, [dpi, gcodeConfig.img_w_mm]) @@ -216,18 +264,6 @@ export default function App() { } } - async function uploadToPrinter() { - const url = (gcodeConfig.printer_url || '').trim() - if (!url) { setGlobalStatus('Set Printer URL in the G-code panel first'); return } - try { - setGlobalStatus(`Uploading to ${url}…`) - const names = await tauri.uploadToPrinter(gcodeConfig, url) - setGlobalStatus(`Uploaded ${names.length} file(s) to ${url} — open the WebUI to run`) - } catch (e) { - setGlobalStatus(`Upload error: ${e.message ?? e}`) - } - } - function setGcode(patch) { setGcodeConfig(c => ({ ...c, ...patch })) } // ── Project save ─────────────────────────────────────────────────────────── @@ -247,6 +283,8 @@ export default function App() { nodeWidth, graph: passes[0].graph, gcodeConfig, + sourceMode, + textBlocks, }) await tauri.writeProjectFile(path, json) setProjectPath(path) @@ -269,6 +307,8 @@ export default function App() { if (restored.gcodeConfig) setGcodeConfig(restored.gcodeConfig) if (restored.dpi) setDpi(restored.dpi) if (restored.nodeWidth) setNodeWidth(restored.nodeWidth) + if (restored.sourceMode) setSourceMode(restored.sourceMode) + if (Array.isArray(restored.textBlocks)) setTextBlocks(restored.textBlocks) // Replace the pass graph if (restored.graph) { @@ -373,6 +413,41 @@ export default function App() {

+ {/* Source mode */} +
+

Source

+
+ + +
+ + {sourceMode === 'text' && ( +
+

+ Switch to the Source tab to place + text directly on the paper. Click empty paper to add a box, drag the + header to move, drag the SE corner to scale. +

+

+ Blocks rasterise to a paper-sized image and run through the graph + (Detection → Hull → Fill) like any image source. +

+ +
+ )} +
+ {/* Graph */}

Graph

@@ -398,9 +473,10 @@ export default function App() { @@ -453,27 +532,22 @@ export default function App() { onChange={v => setGcode({ feed_travel: v })} unit=" mm/m" /> setGcode({ pen_up_z_mm: v })} /> + setGcode({ pen_dwell_ms: v })} />
+ {/* Calibration: corner jog + axis-scale */} + + + {/* Export & upload */}

Output

- -
- - setGcode({ printer_url: e.target.value })} - placeholder="http://fluidnc.local" - className="w-full px-2 py-1 rounded bg-neutral-800 border border-neutral-700 text-xs text-neutral-200" /> -
- +

Use the Printer tab to upload & run.

@@ -492,7 +566,7 @@ export default function App() { {/* Top bar — accent colors match the section dots in the left panel */}
{VIEW_MODES.map(m => { - const accent = { detection: '#6366f1', contours: '#14b8a6', gcode: '#f59e0b' }[m] + const accent = { detection: '#6366f1', contours: '#14b8a6', gcode: '#f59e0b', chordal: '#ec4899', printer: '#10b981', tuning: '#a855f7' }[m] const label = m === 'gcode' ? 'G-code' : m.charAt(0).toUpperCase() + m.slice(1) return ( +
+
+ + +
+
+ A: {pointA != null ? pointA.toFixed(3) : '—'} + B: {pointB != null ? pointB.toFixed(3) : '—'} +
+
+ + setKnownDist(parseFloat(e.target.value) || 0)} + className="flex-1 px-1.5 py-0.5 rounded bg-neutral-900 border border-neutral-700 text-xs" /> + mm +
+
+ + +
+ {currentSpm != null && proposedSpm != null && ( +

+ Δ = {((proposedSpm - currentSpm) / currentSpm * 100).toFixed(2)}%; max_travel meaning shifts by this much. Re-home after apply. +

+ )} + + ) +} + +export default function CalibrationAxis({ printerUrl, setStatus }) { + return ( +
+

Calibrate axis scale

+

+ Place a known reference (paper, ruler) along an axis. Use the Printer + tab's jog to position the pen exactly at point A, click Mark A; jog + to point B, click Mark B; enter the known physical distance, Compute, + Apply. Re-home afterward. +

+ + +
+ ) +} diff --git a/src-frontend/src/components/CalibrationButtons.jsx b/src-frontend/src/components/CalibrationButtons.jsx new file mode 100644 index 00000000..3fc0ac77 --- /dev/null +++ b/src-frontend/src/components/CalibrationButtons.jsx @@ -0,0 +1,104 @@ +import { useState } from 'react' +import * as tauri from '../hooks/useTauri.js' + +// Send gcode that lifts the pen and moves to (x, y) in machine coords. +// Goes via the WebSocket-safe path (printer_run_gcode_ws), so it won't +// trigger the FluidNC FLASH-cache panic that the synchronousCommand path does. +function buildJogGcode(x, y, penUpZ, feed) { + return [ + 'G90 G21', + `G0 Z${penUpZ.toFixed(3)}`, + `G0 X${x.toFixed(3)} Y${y.toFixed(3)} F${feed}`, + ].join('\n') +} + +function CornerBtn({ label, onClick, disabled }) { + return ( + + ) +} + +export default function CalibrationButtons({ gcodeConfig, imgSize, setStatus }) { + const [busy, setBusy] = useState(false) + + const url = gcodeConfig.printer_url ?? '' + const penUpZ = gcodeConfig.pen_up_z_mm ?? 2 + const feed = gcodeConfig.feed_travel ?? 3000 + + // Paper rect in machine coords + const px = gcodeConfig.paper_offset_x_mm ?? 0 + const py = gcodeConfig.paper_offset_y_mm ?? 0 + const pw = gcodeConfig.paper_w_mm + const ph = gcodeConfig.paper_h_mm + + // Image rect in machine coords (image height derived from pixel aspect) + const imgWmm = gcodeConfig.img_w_mm + const imgHmm = imgSize && imgSize.width > 0 + ? imgWmm * imgSize.height / imgSize.width + : imgWmm + const ix = px + (gcodeConfig.offset_x_mm ?? 0) + const iy = py + (gcodeConfig.offset_y_mm ?? 0) + + const goto = (label, x, y) => async () => { + if (!url) { setStatus('Set Printer URL in the Printer tab first'); return } + try { + setBusy(true) + setStatus(`Jog → ${label} (${x.toFixed(1)}, ${y.toFixed(1)})…`) + await tauri.printerRunGcodeWs(url, buildJogGcode(x, y, penUpZ, feed)) + setStatus(`At ${label}`) + } catch (e) { + setStatus(`Jog error: ${e.message ?? e}`) + } finally { setBusy(false) } + } + + const disabled = busy || !url + + const corner = (rx, ry, rw, rh) => ({ + TL: [rx, ry ], + TR: [rx + rw, ry ], + BL: [rx, ry + rh ], + BR: [rx + rw, ry + rh ], + }) + const paper = corner(px, py, pw, ph) + const image = corner(ix, iy, imgWmm, imgHmm) + + return ( +
+

Calibration jog

+

Lifts pen, moves to a corner so you can align the paper. Requires a homed machine.

+ +
+

Paper

+
+ + + + +
+
+ + {imgSize && ( +
+

Image

+
+ + + + +
+
+ )} +
+ ) +} diff --git a/src-frontend/src/components/ChordalDebugView.jsx b/src-frontend/src/components/ChordalDebugView.jsx new file mode 100644 index 00000000..2aa47a52 --- /dev/null +++ b/src-frontend/src/components/ChordalDebugView.jsx @@ -0,0 +1,505 @@ +import { useEffect, useMemo, useRef, useState } from 'react' +import * as tauri from '../hooks/useTauri.js' + +// macOS trackpads emit lots of small wheel events per gesture (versus a few +// large events from a discrete mouse wheel). Apply a much gentler per-event +// factor so a single two-finger swipe doesn't blast through the zoom range. +const IS_DARWIN = typeof navigator !== 'undefined' && + /Mac|iPhone|iPad|iPod/i.test(navigator.platform || navigator.userAgent || '') +const ZOOM_SENSITIVITY = IS_DARWIN ? 0.0015 : 0.015 + +// Steps as labelled in the chordal_axis_fill explanation. Each layer renders +// one of the algorithm's intermediate states. Toggle them on/off to walk +// through the algorithm at high zoom. +const LAYERS = [ + { key: 'source', label: '0. Source pixels', on: true }, + { key: 'outer', label: '1. Outer polygon', on: true }, + { key: 'holePixels', label: '2. Hole pixels', on: false }, + { key: 'holes', label: '3. Hole polygons', on: true }, + { key: 'triangulation', label: '4. CDT triangulation', on: true }, + { key: 'classification',label: '5. Triangle classification',on: true }, + { key: 'segments', label: '6. CAT segments', on: false }, + { key: 'polylines', label: '7-8. Polylines (raw)', on: false }, + { key: 'pruned', label: '8.5 Pruned branches', on: true }, + { key: 'strokes', label: '9. Final smoothed strokes', on: true }, + { key: 'vertices', label: '· Polygon vertices', on: false }, +] + +const KIND_FILL = { + junction: 'rgba(244, 63, 94, 0.30)', // red + sleeve: 'rgba(56, 189, 248, 0.20)', // cyan + termination: 'rgba(250, 204, 21, 0.30)', // amber + pure: 'rgba(168, 85, 247, 0.30)', // purple + outside: 'rgba(120, 120, 120, 0.06)', // grey +} + +export default function ChordalDebugView({ passIdx = 0 }) { + const [hulls, setHulls] = useState([]) + const [hullIdx, setHullIdx] = useState(0) + const [salience, setSalience] = useState(0) + const [sourceOpacity, setSourceOpacity] = useState(0.4) + const [debug, setDebug] = useState(null) + const [enabled, setEnabled] = useState( + Object.fromEntries(LAYERS.map(l => [l.key, l.on])), + ) + const [view, setView] = useState({ zoom: 1, panX: 0, panY: 0 }) + const containerRef = useRef(null) + const svgRef = useRef(null) + const dragRef = useRef(null) + const [hover, setHover] = useState(null) // {x, y, sx, sy} in image coords + const [selBox, setSelBox] = useState(null) // {x0, y0, x1, y1} in image coords during drag + const [toast, setToast] = useState(null) // ephemeral notification text + + // Load hull list whenever the tab is mounted. + useEffect(() => { + let alive = true + tauri.listHulls(passIdx).then(list => { + if (!alive) return + // Sort by area desc so the largest glyph is index 0 in the dropdown. + const sorted = [...list].sort((a, b) => b.area - a.area) + setHulls(sorted) + if (sorted.length > 0) setHullIdx(sorted[0].index) + }).catch(() => {}) + return () => { alive = false } + }, [passIdx]) + + // Pull debug data when hull or salience changes. + useEffect(() => { + if (hulls.length === 0) return + let alive = true + tauri.getChordalDebug(passIdx, hullIdx, salience).then(d => { + if (!alive) return + setDebug(d) + // Reset view on new hull. + setView({ zoom: 1, panX: 0, panY: 0 }) + }).catch(() => {}) + return () => { alive = false } + }, [passIdx, hullIdx, salience, hulls.length]) + + // viewBox: hull bbox padded by 4px, optionally zoomed/panned via SVG. + const viewBox = useMemo(() => { + if (!debug) return '0 0 100 100' + const [x0, y0, x1, y1] = debug.bounds + const pad = Math.max(2, (x1 - x0) * 0.04) + const w = (x1 - x0) + 2 * pad + const h = (y1 - y0) + 2 * pad + return `${x0 - pad - view.panX} ${y0 - pad - view.panY} ${w / view.zoom} ${h / view.zoom}` + }, [debug, view]) + + const onWheel = (e) => { + e.preventDefault() + if (!debug || !svgRef.current) return + // Continuous zoom proportional to scroll magnitude — feels right for + // both trackpad gestures and mouse wheel ticks. + const factor = Math.exp(-e.deltaY * ZOOM_SENSITIVITY) + const rect = svgRef.current.getBoundingClientRect() + // Cursor position normalised to the SVG element (independent of viewBox). + const u = (e.clientX - rect.left) / rect.width + const vN = (e.clientY - rect.top) / rect.height + const [x0, y0, x1, y1] = debug.bounds + const pad = Math.max(2, (x1 - x0) * 0.04) + const wBase = (x1 - x0) + 2 * pad + const hBase = (y1 - y0) + 2 * pad + setView(v => { + const newZoom = Math.max(0.1, Math.min(200, v.zoom * factor)) + if (newZoom === v.zoom) return v + // viewBox.x = (x0 - pad) - panX, viewBox.width = wBase / zoom. + // Keeping (viewBox.x + u * width) constant across zoom yields: + // panX_new = panX + u * (width_new - width_old) + const dW = wBase * (1 / newZoom - 1 / v.zoom) + const dH = hBase * (1 / newZoom - 1 / v.zoom) + return { + zoom: newZoom, + panX: v.panX + u * dW, + panY: v.panY + vN * dH, + } + }) + } + + // Convert clientXY to image-space coords using the SVG's CTM. + const clientToImage = (clientX, clientY) => { + const svg = svgRef.current + if (!svg) return null + const pt = svg.createSVGPoint(); pt.x = clientX; pt.y = clientY + const ctm = svg.getScreenCTM(); if (!ctm) return null + const ip = pt.matrixTransform(ctm.inverse()) + return { x: ip.x, y: ip.y } + } + + const onMouseDown = (e) => { + if (e.button !== 0) return + + // Shift-drag = box select. Falls back to pan-drag when shift not held. + if (e.shiftKey) { + const start = clientToImage(e.clientX, e.clientY) + if (!start) return + e.preventDefault() + setSelBox({ x0: start.x, y0: start.y, x1: start.x, y1: start.y }) + const onMove = (ev) => { + const cur = clientToImage(ev.clientX, ev.clientY); if (!cur) return + setSelBox(b => b && { ...b, x1: cur.x, y1: cur.y }) + } + const onUp = () => { + document.removeEventListener('mousemove', onMove) + document.removeEventListener('mouseup', onUp) + setSelBox(b => { + if (!b) return null + finalizeSelection(b) + return null + }) + } + document.addEventListener('mousemove', onMove) + document.addEventListener('mouseup', onUp) + return + } + + dragRef.current = { + startX: e.clientX, startY: e.clientY, + origPanX: view.panX, origPanY: view.panY, + } + const onMove = (ev) => { + const s = dragRef.current; if (!s) return + // Convert pixel drag to image-coord drag using current viewBox size. + const rect = containerRef.current.getBoundingClientRect() + if (!debug) return + const [x0, y0, x1, y1] = debug.bounds + const w = (x1 - x0) * 1.08 / view.zoom + const dx = (ev.clientX - s.startX) / rect.width * w + const dy = (ev.clientY - s.startY) / rect.height * (y1 - y0) * 1.08 / view.zoom + setView(v => ({ ...v, panX: s.origPanX + dx, panY: s.origPanY + dy })) + } + const onUp = () => { + dragRef.current = null + document.removeEventListener('mousemove', onMove) + document.removeEventListener('mouseup', onUp) + } + document.addEventListener('mousemove', onMove) + document.addEventListener('mouseup', onUp) + } + + // Filter all debug data to what's inside the selection box, format as JSON, + // and copy to clipboard. Format is intentionally compact-ish — meant to be + // pasted back into a chat to describe an issue at a specific glyph corner. + function finalizeSelection(box) { + if (!debug) return + const lo = { x: Math.min(box.x0, box.x1), y: Math.min(box.y0, box.y1) } + const hi = { x: Math.max(box.x0, box.x1), y: Math.max(box.y0, box.y1) } + if (hi.x - lo.x < 0.5 || hi.y - lo.y < 0.5) return // ignore tiny/click-only + + const ptIn = (p) => p[0] >= lo.x && p[0] <= hi.x && p[1] >= lo.y && p[1] <= hi.y + const anyIn = (pts) => pts.some(ptIn) + + const round2 = (n) => Math.round(n * 100) / 100 + const r2 = (p) => [round2(p[0]), round2(p[1])] + const r2list = (pts) => pts.map(r2) + + const out = { + hull_index: hullIdx, + box: [round2(lo.x), round2(lo.y), round2(hi.x), round2(hi.y)], + outer_vertices_in_box: r2list(debug.outer.filter(ptIn)), + hole_vertices_in_box: debug.holes.map(h => r2list(h.filter(ptIn))).filter(h => h.length > 0), + triangles: debug.triangles.filter(t => anyIn(t.points)) + .map(t => ({ + points: r2list(t.points), + edge_constraint: t.edge_constraint, + kind: t.kind, + })), + segments: debug.segments.filter(([a, b]) => ptIn(a) || ptIn(b)) + .map(([a, b]) => [r2(a), r2(b)]), + polylines: debug.polylines.filter(p => anyIn(p.points)) + .map(p => ({ + branch: p.branch, + kept: p.kept, + points: r2list(p.points), + })), + strokes: debug.strokes.filter(anyIn).map(r2list), + } + + const json = JSON.stringify(out, null, 2) + navigator.clipboard.writeText(json).then(() => { + const summary = `${out.outer_vertices_in_box.length} outer · ` + + `${out.triangles.length} tris · ` + + `${out.segments.length} segs · ` + + `${out.polylines.length} polylines · ` + + `${out.strokes.length} strokes` + setToast(`Copied to clipboard — ${summary}`) + setTimeout(() => setToast(null), 3000) + }).catch(err => { + setToast(`Clipboard write failed: ${err.message ?? err}`) + setTimeout(() => setToast(null), 4000) + }) + } + + const onMouseMoveSvg = (e) => { + if (!debug) return + const svg = e.currentTarget + const pt = svg.createSVGPoint() + pt.x = e.clientX; pt.y = e.clientY + const ctm = svg.getScreenCTM() + if (!ctm) return + const inv = ctm.inverse() + const ip = pt.matrixTransform(inv) + setHover({ x: ip.x, y: ip.y, sx: e.clientX, sy: e.clientY }) + } + + const toggleLayer = (key) => setEnabled(en => ({ ...en, [key]: !en[key] })) + + if (!debug) { + return ( +
+
+

Chordal debug

+

No hulls available — run the pipeline first (Source → Kernel → Hull).

+
+
+ ) + } + + return ( +
+ {/* Sidebar */} +
+
+ + +
+ +
+ + setSalience(parseFloat(e.target.value))} + className="w-full" /> +
+ +
+ + setSourceOpacity(parseFloat(e.target.value))} + className="w-full" /> +
+ +
+
Layers
+
+ {LAYERS.map(l => ( + + ))} +
+
+ +
+

Zoom: wheel · Pan: drag

+

Reset: + +

+
+
· {debug.outer.length} outer verts
+
· {debug.holes.length} holes ({debug.hole_pixels.reduce((s, h) => s + h.length, 0)} px)
+
· {debug.triangles.length} triangles + ({debug.triangles.filter(t => t.kind !== 'outside').length} interior)
+
· {debug.segments.length} CAT segments
+
· {debug.polylines.length} polylines + ({debug.polylines.filter(p => p.branch).length} branches, + {' '}{debug.polylines.filter(p => !p.kept).length} pruned)
+
· {debug.strokes.length} final strokes
+
· source_b64: {debug.source_b64 + ? `${(debug.source_b64.length / 1024).toFixed(1)} KB` + : 'MISSING (rebuild Rust)'}
+
+ {hover && ( +
+ ({hover.x.toFixed(2)}, {hover.y.toFixed(2)}) +
+ )} +
+
+ + {/* Canvas */} +
+ + + {/* Source pixels — bottom-most, so all algorithm layers render on top. + imageRendering pixelated keeps it crisp under zoom. xlinkHref + alongside href for max webview compatibility. */} + {enabled.source && debug.source_b64 && ( + + )} + + {/* Hole pixel cells (raster underlay) */} + {enabled.holePixels && debug.hole_pixels.map((hp, hi) => ( + + {hp.map(([x, y], i) => ( + + ))} + + ))} + + {/* Triangulation: fill by classification, stroke for edges. + strokeWidth is in screen pixels (vectorEffect:non-scaling-stroke), + so 0.6 = ~half a CSS pixel, visible at every zoom level. */} + {enabled.triangulation && debug.triangles.map((t, i) => { + const fill = enabled.classification ? (KIND_FILL[t.kind] ?? 'transparent') : 'transparent' + return ( + + `${p[0]},${p[1]}`).join(' ')} + fill={fill} + stroke="rgba(160, 160, 165, 0.85)" + strokeWidth={0.6} + vectorEffect="non-scaling-stroke" + /> + {/* Constraint edges drawn thicker + bright so they read as + "this is the polygon boundary, the rest are diagonals." */} + {t.edge_constraint.map((c, ei) => { + if (!c) return null + const a = t.points[ei] + const b = t.points[(ei + 1) % 3] + return ( + + ) + })} + + ) + })} + + {/* Outer polygon (highlighted on top) */} + {enabled.outer && ( + `${p[0]},${p[1]}`).join(' ')} + fill="none" stroke="#34d399" strokeWidth={1.2} + vectorEffect="non-scaling-stroke" /> + )} + + {/* Hole polygons */} + {enabled.holes && debug.holes.map((h, i) => ( + `${p[0]},${p[1]}`).join(' ')} + fill="none" stroke="#fbbf24" strokeWidth={1.0} + vectorEffect="non-scaling-stroke" /> + ))} + + {/* Polygon vertices */} + {enabled.vertices && ( + + {debug.outer.map((p, i) => ( + + ))} + {debug.holes.flatMap((h, hi) => h.map((p, i) => ( + + )))} + + )} + + {/* Raw CAT segments (before walking) */} + {enabled.segments && debug.segments.map(([a, b], i) => ( + + ))} + + {/* Raw polylines (before smoothing) */} + {enabled.polylines && debug.polylines.map((pl, i) => ( + `${p[0]},${p[1]}`).join(' ')} + fill="none" + stroke={pl.branch ? '#a78bfa' : '#22d3ee'} + strokeWidth={0.8} + vectorEffect="non-scaling-stroke" /> + ))} + + {/* Pruned (dropped by salience) — dashed red so it's visible against + the kept set. Only meaningful when salience > 0. */} + {enabled.pruned && debug.polylines.filter(p => !p.kept).map((pl, i) => ( + `${p[0]},${p[1]}`).join(' ')} + fill="none" + stroke="#ef4444" + strokeWidth={0.8} + strokeDasharray="2 1" + vectorEffect="non-scaling-stroke" /> + ))} + + {/* Final smoothed strokes (the gcode output) */} + {enabled.strokes && debug.strokes.map((s, i) => ( + `${p[0]},${p[1]}`).join(' ')} + fill="none" stroke="#f8fafc" strokeWidth={0.8} + strokeLinecap="round" strokeLinejoin="round" + vectorEffect="non-scaling-stroke" /> + ))} + + {/* Selection box (live during shift-drag) */} + {selBox && ( + + )} + + + {/* Shift+drag hint, bottom-left */} +
+ Shift+drag to copy region data to clipboard +
+ + {/* Toast notification */} + {toast && ( +
+ {toast} +
+ )} +
+
+ ) +} diff --git a/src-frontend/src/components/PrinterPanel.jsx b/src-frontend/src/components/PrinterPanel.jsx new file mode 100644 index 00000000..ae99d6ec --- /dev/null +++ b/src-frontend/src/components/PrinterPanel.jsx @@ -0,0 +1,265 @@ +import { useEffect, useRef, useState, useCallback } from 'react' +import { listen } from '@tauri-apps/api/event' +import * as tauri from '../hooks/useTauri.js' + +// Pollable runs every POLL_MS while the panel is mounted. Status is fetched +// via $T over HTTP — state name only. Live MPos requires WebSocket and is +// a follow-up. +const POLL_MS = 2000 +const JOG_FEED = 1500 +const JOG_STEPS = [0.1, 1, 10, 50] + +function StateBadge({ state }) { + const colors = { + Idle: 'bg-emerald-700 text-emerald-100', + Run: 'bg-sky-700 text-sky-100', + Jog: 'bg-sky-700 text-sky-100', + Home: 'bg-sky-700 text-sky-100', + Hold: 'bg-amber-600 text-amber-50', + Alarm: 'bg-red-700 text-red-100', + Door: 'bg-amber-600 text-amber-50', + Sleep: 'bg-neutral-600 text-neutral-100', + } + const c = colors[state] || 'bg-neutral-700 text-neutral-300' + return ( + + {state || '—'} + + ) +} + +function Btn({ children, onClick, disabled, variant = 'default', className = '', title }) { + const variants = { + default: 'bg-neutral-800 hover:bg-neutral-700 border border-neutral-700 text-neutral-200', + danger: 'bg-red-700 hover:bg-red-600 text-white', + warn: 'bg-amber-700 hover:bg-amber-600 text-white', + good: 'bg-emerald-700 hover:bg-emerald-600 text-white', + primary: 'bg-indigo-700 hover:bg-indigo-600 text-white', + } + return ( + + ) +} + +export default function PrinterPanel({ printerUrl, setPrinterUrl, gcodeConfig, hasStrokes, onStatus }) { + const [status, setStatus] = useState({ state: '' }) + const [sdFiles, setSdFiles] = useState([]) + const [selected, setSelected] = useState(null) + const [busy, setBusy] = useState(false) + const [msg, setMsg] = useState('') + const [jogStep, setJogStep] = useState(10) + const [upload, setUpload] = useState(null) // { file, sent, total } | null + const stopRef = useRef(false) + + const idle = status.state === 'Idle' + + // ── Status polling ───────────────────────────────────────────────────────── + // Status is fetched via WebSocket — works in every state (including motion), + // returns live MPos. HTTP $T was the prior approach but returns 503 during + // motion / ConfigAlarm and was incorrectly showing "Offline" for those. + const refreshStatus = useCallback(async () => { + if (!printerUrl) return + try { + const s = await tauri.printerStatusWs(printerUrl) + setStatus(s) + onStatus?.(s) + } catch (e) { + setStatus({ state: 'Offline', mpos: [0, 0, 0] }) + } + }, [printerUrl, onStatus]) + + // POLLING DISABLED for crash diagnosis — see why-this-might-crash discussion. + // Single fetch on mount/url change, then stop. Manual refresh button still works. + useEffect(() => { + refreshStatus() + }, [refreshStatus]) + + // Listen for upload-progress events emitted by the Rust upload command + // (~10 Hz). Reset when an upload completes (sent === total). + useEffect(() => { + let unlisten = null + listen('upload-progress', e => { + const p = e.payload + setUpload(p) + if (p && p.sent >= p.total) { + // Clear the progress display ~1s after completion so the user sees 100% + setTimeout(() => setUpload(prev => (prev && prev.file === p.file && prev.sent >= prev.total) ? null : prev), 1200) + } + }).then(fn => { unlisten = fn }) + return () => { if (unlisten) unlisten() } + }, []) + + // ── File list (only when Idle, never during run) ────────────────────────── + const refreshFiles = async () => { + if (!printerUrl) return + if (status.state && status.state !== 'Idle' && status.state !== 'Alarm' && status.state !== 'Offline') { + setMsg('Refusing to list SD files while machine is in motion.') + return + } + try { + setBusy(true) + const files = await tauri.printerListSd(printerUrl) + setSdFiles(files) + setMsg(`${files.length} gcode file(s) on SD`) + } catch (e) { + setMsg(`List error: ${e}`) + } finally { setBusy(false) } + } + + // ── Action wrappers ──────────────────────────────────────────────────────── + const wrap = (label, fn) => async () => { + try { setBusy(true); setMsg(label + '…'); const r = await fn(); setMsg(label + ' ok'); refreshStatus(); return r } + catch (e) { setMsg(`${label} error: ${e}`) } + finally { setBusy(false) } + } + + const onHold = wrap('Feed hold', () => tauri.printerFeedHold(printerUrl)) + const onResume = wrap('Resume', () => tauri.printerCycleStart(printerUrl)) + const onReset = wrap('Soft reset', () => tauri.printerSoftReset(printerUrl)) + const onHardReset = wrap('Hard reset', () => tauri.printerHardReset(printerUrl)) + const onUnlock = wrap('Unlock', () => tauri.printerCommand(printerUrl, '$X')) + // Home and Jog go via WebSocket (printer_home_ws / printer_jog_ws). Sending + // $H or $J= over /command?plain= holds an HTTP connection open during the + // entire motion and triggers the FluidNC FLASH-cache panic bug (#1295). + const onHome = wrap('Home', () => tauri.printerHomeWs(printerUrl)) + const onRunSel = wrap('Run', () => tauri.printerRunSdFile(printerUrl, selected)) + const onUpload = wrap('Upload', () => tauri.uploadToPrinter(gcodeConfig, printerUrl)) + const onUpAndRun = wrap('Upload+Run', () => tauri.uploadAndRun(gcodeConfig, printerUrl)) + + const jog = (axis, dir) => wrap(`Jog ${axis}${dir > 0 ? '+' : '-'}`, () => + tauri.printerJogWs(printerUrl, `$J=G91 G21 F${JOG_FEED} ${axis}${dir * jogStep}`) + ) + + return ( +
+ {/* Connection */} +
+
+

Printer

+ +
+ +
+ setPrinterUrl(e.target.value)} + placeholder="http://fluidnc.local" + className="w-full px-2 py-1 rounded bg-neutral-800 border border-neutral-700 text-xs" /> + {status.mpos && status.state && status.state !== 'Offline' && ( +

+ MPos  + X {(status.mpos[0] ?? 0).toFixed(2)}{' '} + Y {(status.mpos[1] ?? 0).toFixed(2)}{' '} + Z {(status.mpos[2] ?? 0).toFixed(2)} + {status.feed > 0 && F {status.feed.toFixed(0)}} +

+ )} + {msg &&

{msg}

} +
+ + {/* Realtime control — always available */} +
+

Control

+
+ Hold (!) + Resume (~) + Unlock ($X) +
+
+ + Soft reset + + + Hard reset (reboot) + +
+
+ + {/* Jog — Idle only */} +
+
+

Jog

+
+ {JOG_STEPS.map(s => ( + + ))} +
+
+
+
+ Y+ +
+ X- + Home + X+ +
+ Y- +
+
+
+ Z+ (pen up) + Z- (pen down) +
+
+ + {/* Print */} +
+

Print

+
+ + ▶ Send current project & run + +
+ Upload only + List SD files +
+ {upload && ( +
+
+ {upload.file} + {(upload.sent/1024).toFixed(1)} / {(upload.total/1024).toFixed(1)} KB +
+
+
+
+
+ )} + {sdFiles.length > 0 && ( +
+ {sdFiles.map(f => ( + + ))} +
+ )} + {selected && ( + + ▶ Run {selected} + + )} +
+
+ +
+

Tip: don't open the FluidNC WebUI Files tab during a run or upload — it races the SD/FLASH driver and can panic the controller or truncate uploads.

+
+
+ ) +} diff --git a/src-frontend/src/components/TextEditOverlay.jsx b/src-frontend/src/components/TextEditOverlay.jsx new file mode 100644 index 00000000..b462e8d0 --- /dev/null +++ b/src-frontend/src/components/TextEditOverlay.jsx @@ -0,0 +1,319 @@ +import { useEffect, useMemo, useRef, useState, useLayoutEffect } from 'react' +import { renderText, measureText } from '../lib/hershey.js' + +// MS-Paint-style WYSIWYG text editor for the Source tab. +// +// Each box is a stack of three layers in mm-coord SVG-space: +// 1. visual: rendering the actual Hershey strokes (what will plot) +// 2. editable: a transparent
+
+ {blocks.map((b, i) => ( + setSelectedIdx(i)} + onChange={patch => setBlocks(bs => bs.map((bb, j) => j === i ? { ...bb, ...patch } : bb))} + onDelete={() => { setBlocks(bs => bs.filter((_, j) => j !== i)); setSelectedIdx(null) }} + mmToPx={mmToPx} pxToMm={pxToMm} + /> + ))} +
+

+ Drag to pan • Wheel to zoom • Double-click paper to add a text box • Drag header to move • Drag SE corner to scale font +

+

+ Paper {paperWMm.toFixed(0)}×{paperHMm.toFixed(0)}mm · {(view.zoom * 100).toFixed(0)}% +

+
+ ) +} + +// ── Single box ────────────────────────────────────────────────────────────── +function TextBox({ block, selected, onSelect, onChange, onDelete, mmToPx, pxToMm }) { + const taRef = useRef(null) + const dragStateRef = useRef(null) + + // Real Hershey rendering: actual strokes & accurate measurement. + const { strokes, widthMm, heightMm } = useMemo(() => { + const { width, height } = measureText(block.text || ' ', block.font_size_mm, block.line_spacing_mm) + const strokes = renderText(block.text || '', block.font_size_mm, block.line_spacing_mm) + return { + strokes, + widthMm: Math.max(8, width + 2), // small breathing room so caret has space + heightMm: Math.max(block.font_size_mm, height), + } + }, [block.text, block.font_size_mm, block.line_spacing_mm]) + + const left = mmToPx(block.x_mm) + const top = mmToPx(block.y_mm) + const width = mmToPx(widthMm) + const height = mmToPx(heightMm) + const fontPx = mmToPx(block.font_size_mm) + // Hershey-pen-thickness ≈ 1/14 cap-height — emulate visually with a thin + // SVG stroke. Scale with font size so it stays visible. + const strokePx = Math.max(0.6, fontPx / 14) + + const onHeaderMouseDown = (e) => { + e.stopPropagation() + e.preventDefault() + onSelect() + dragStateRef.current = { + kind: 'move', + startX: e.clientX, startY: e.clientY, + origMm: { x: block.x_mm, y: block.y_mm }, + } + document.addEventListener('mousemove', onMouseMove) + document.addEventListener('mouseup', onMouseUp) + } + + const onResizeMouseDown = (e) => { + e.stopPropagation() + e.preventDefault() + onSelect() + dragStateRef.current = { + kind: 'resize', + startX: e.clientX, startY: e.clientY, + origFontMm: block.font_size_mm, + origLineMm: block.line_spacing_mm ?? block.font_size_mm * 1.6, + origWidthPx: width, + origHeightPx: height, + } + document.addEventListener('mousemove', onMouseMove) + document.addEventListener('mouseup', onMouseUp) + } + + function onMouseMove(e) { + const s = dragStateRef.current + if (!s) return + const dx = e.clientX - s.startX + const dy = e.clientY - s.startY + if (s.kind === 'move') { + onChange({ + x_mm: Math.max(0, s.origMm.x + pxToMm(dx)), + y_mm: Math.max(0, s.origMm.y + pxToMm(dy)), + }) + } else if (s.kind === 'resize') { + const sx = (s.origWidthPx + dx) / s.origWidthPx + const sy = (s.origHeightPx + dy) / s.origHeightPx + const factor = Math.max(0.25, Math.min(8, Math.max(sx, sy))) + onChange({ + font_size_mm: Math.max(1, s.origFontMm * factor), + line_spacing_mm: Math.max(2, s.origLineMm * factor), + }) + } + } + + function onMouseUp() { + dragStateRef.current = null + document.removeEventListener('mousemove', onMouseMove) + document.removeEventListener('mouseup', onMouseUp) + } + useEffect(() => () => onMouseUp(), []) + + // Auto-grow textarea height on text change so the caret tracks the + // expanding box. + useEffect(() => { + if (taRef.current) taRef.current.style.height = `${height}px` + }, [height]) + + return ( +
{ e.stopPropagation(); onSelect() }}> + + {/* Header — draggable */} +
+ + {block.x_mm.toFixed(0)},{block.y_mm.toFixed(0)} · {block.font_size_mm.toFixed(1)}mm + + {selected && ( + + )} +
+ + {/* Body: SVG (visual) + textarea (caret) stacked at same coords. */} +
+ {/* WYSIWYG Hershey rendering */} + + {strokes.map((pts, i) => ( + `${x},${y}`).join(' ')} + fill="none" stroke="black" strokeWidth={strokePx / mmToPx(1)} + strokeLinecap="round" strokeLinejoin="round" /> + ))} + + {/* Editable layer: caret-only, transparent text. Lining up the + character cells exactly with Hershey is impossible (Hershey is + proportional, system mono is not), but a monospace placeholder + keeps the caret tracking close enough for editing. */} +