25 lines
1.2 KiB
Markdown
25 lines
1.2 KiB
Markdown
# Capture
|
||
|
||
Runs in the browser on phone and PC.
|
||
|
||
## Flow
|
||
|
||
1. User adds one slab photo. First photo is top-down, lens parallel to the face.
|
||
2. App draws a mask overlay on the source photo. Controls: sheet Auto / Green / Black, one sensitivity slider. Overlay updates as the slider moves.
|
||
3. User adjusts until the mask edge sits on the slab, then approves the mask.
|
||
4. App draws the minimum-area bounding rectangle of the mask and the length axis on the long side of that rectangle. User rotates the axis if it does not follow the slab length, then approves the axis.
|
||
5. User enters length `L` in inches (1/8 in steps) and thickness (1/8 in steps).
|
||
6. App sets `scale = longest_axis_px / L`.
|
||
7. App computes widths, sqft, and bdft, and writes the inventory PNG.
|
||
8. User sees the PNG and the numbers.
|
||
|
||
## Measurements
|
||
|
||
- Widths: min, max, avg, sampled every 6 in along the approved length axis, perpendicular to it
|
||
- `sqft = (mask_pixels / scale²) / 144` (2 decimals)
|
||
- `bdft = sqft × thickness_in` (2 decimals)
|
||
|
||
## Inventory PNG
|
||
|
||
Transparent, 3:4, slab centered, 80% fill at extremes. Shorter side at least 1600px when the source allows. Source below that floor requires a new photo.
|