Fit the background brightness from the photo border and subtract it, so side-lit photos threshold cleanly. The clicked pixel (or, without a click, the border) decides whether the piece is darker or lighter, replacing the invert checkbox. Adds the MDF-on-wood-floor photo as a regression fixture. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
# Scrap Tracer
|
||
|
||
Turn a phone photo of a laser-cut scrap piece into a 1:1 DXF/SVG outline, so you can check in
|
||
RDWorks (or LightBurn/Inkscape) whether your design fits on it. Built for Makerspace Delft.
|
||
|
||
## Use
|
||
|
||
1. Photograph the piece from straight above, on a contrasting surface, with something of known length visible.
|
||
2. Load the photo, click **Measure**, click both ends of the known length, and enter it in mm.
|
||
3. Check the green outline. If needed, click the piece (this also tells the app whether
|
||
it is darker or lighter than the background), adjust the threshold, or draw the outline by hand.
|
||
4. Set the safety margin (default −2 mm shrinks the usable area a little).
|
||
5. Download DXF and import it in your laser software at 1:1, in mm.
|
||
|
||
## Develop
|
||
|
||
npm install
|
||
npm run dev # local dev server
|
||
npm test # unit tests (Vitest, OpenCV runs headless in Node)
|
||
npm run check # type check
|
||
npm run build # static build in dist/
|
||
|
||
## Deploy (Cloudflare Pages)
|
||
|
||
Build command `npm run build`, output directory `dist`. No server or environment variables needed.
|