1c58f12c5d07a580ae5a369fac243afed28cd976
The green/black-sheet luminance threshold could not separate the slab from the 'black' sheet, which in real photos reads at lum ~50 and overlaps the slab's bark/shadow tones (measured on the user's samples: 0% green, 60-80% dark, no brightness gap) - it removed 100% of the image. Replace the mask pass with connectivity-based background removal: sample the sheet tone from the border, flood-fill from the border marking sheet-connected pixels as background, keep the connected remainder as the slab. Robust to tonal overlap. Adds bgRemoval.ts (removeBackground + sampleSheetTone) with unit tests proving a sheet-toned slab pixel survives via enclosure.
SlabUploader
Lists one-of-a-kind wood slabs on Whidbey Wood Store.
Start at docs/README.md for goals, what already shipped, and Milestone 3.
| Artifact | File |
|---|---|
| Docs map | docs/README.md |
| Structure contract | docs/STRUCTURE.md |
| Requirements (normative) | docs/REQUIREMENTS.md |
| Milestones (ID subsets) | docs/MILESTONES.md |
| Product overview | docs/PRODUCT.md |
| Invariants and agent context | AGENTS.md |
| Milestone 1 Capture (shipped) | docs/capabilities/CAPTURE.md |
| Milestone 2 Photos (shipped) | docs/capabilities/PHOTOS.md |
| Milestone 3 Create (paused — requirements reconciliation) | docs/capabilities/CREATE.md |
| UAT practice walk | docs/UAT-PRACTICE.md |
| Hosting | deploy/ |
Owner: Ty. Store: https://www.whidbeywoodstore.com/
Repo: Ty_Tech/SlabUploader
Languages
TypeScript
43.5%
Python
37%
Svelte
18.8%
Shell
0.4%
Dockerfile
0.2%