sjat
dc59f5ed63
refactor: transform layer uses PolyWarp
2026-06-11 09:22:02 +02:00
sjat
fcfa3a0d80
test: tighten barrel regression guard to a hard near-exact bound
2026-06-11 09:21:04 +02:00
sjat
2c2bbb17b9
docs: correct default degree to 3 (barrel distortion is cubic in machine coords)
2026-06-11 09:17:15 +02:00
sjat
c7b48105a6
feat: bivariate polynomial warp model (degree-3 default for barrel)
2026-06-11 09:16:02 +02:00
sjat
72d32db516
feat: extract linalg solver + add least-squares helper
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 09:09:05 +02:00
sjat
04fc642137
docs: add box+# calibration target procedure to distortion spec
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 08:51:48 +02:00
sjat
a94beccaad
docs: design for wide-angle distortion compensation (polynomial warp)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 08:46:11 +02:00
sjat
d22cdd5302
feat: ship default calibration (2440x1220 bed homography)
...
Persist a working calibration so the overlay is usable out-of-the-box without
each viewer re-calibrating. 4 corner point-pairs + precomputed homography
(machine-mm -> normalized [0,1] image coords).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 08:07:49 +02:00
sjat
cbc11f3bb9
feat: wire CNC camera via same-origin /camera proxy, bolder overlay
...
- streamUrl -> relative /camera/mjpg/video.mjpg so the page loads the LAN-only
CNC MJPEG cam same-origin (no mixed-content, no embedded creds). Vite
dev-proxy added so the same path works under `npm run dev`.
- renderDefaults: thicker lines (lineWidth 3) and fully-saturated cut/rapid
colors so the toolpath reads clearly over the video feed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 08:04:12 +02:00
sjat
845e92e56f
test: jsdom coverage for overlay drag + calibration/alignment arbitration
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:59:49 +02:00
sjat
3538d5ccb9
fix: enable overlay drag interaction; tidy dead export and residual readout
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:57:03 +02:00
sjat
fac9168c00
docs: README and deployment config
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:51:47 +02:00
sjat
dbb302f765
fix: guard alignment input against numeric-field editing and calibration clicks
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:50:30 +02:00
sjat
5d80273717
feat: per-job alignment (numeric, click-origin, drag/rotate)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:47:08 +02:00
sjat
d1577dd569
fix: make calibration resolution-independent (normalized image coords)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:45:29 +02:00
sjat
1df5509b29
feat: calibration capture UI with reprojection residuals
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:40:32 +02:00
sjat
38d99bb0dc
feat: app state, stream embedding, G-code render wiring
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:37:35 +02:00
sjat
dd409f56c0
feat: page layout and overlay canvas sizing
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:34:28 +02:00
sjat
96221a217d
feat: canvas overlay renderer
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:31:56 +02:00
sjat
f22a0c16df
fix: validate renderDefaults fields and reject non-finite calibration values
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:30:39 +02:00
sjat
799998fad2
feat: config loader with calibration validation
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:28:07 +02:00
sjat
960d453f57
fix: parser skips non-drawing moves; clean up TS build
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:26:48 +02:00
sjat
c5c1b5e5c2
feat: G-code parser with arcs, units, modal motion
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:21:11 +02:00
sjat
4a554e2057
feat: alignment + projection pipeline
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:18:42 +02:00
sjat
87d579eb47
feat: homography estimate/apply/invert
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:15:36 +02:00
sjat
e475626497
fix: guard flattenArc against zero-radius (degenerate) arcs
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:13:58 +02:00
sjat
7ddaee1454
feat: shared types and arc flattening
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:11:03 +02:00
sjat
959c1fa44e
chore: scaffold Vite + TS + Vitest project
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:08:36 +02:00
sjat
940b0b2fbe
Add G-code overlay implementation plan
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 22:01:49 +02:00
sjat
08767cf821
Add G-code overlay design spec
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 21:55:06 +02:00