printhive/public
dlawler489 7b018aefdb Match slots by colour, not just material
Counting slots fixed one half of the problem; this fixes the other. A slot is
now filled by a spool of the same material whose colour is close to what the
slot asks for, one spool per slot, best matches assigned first. So four PLA
slots in black, blue-grey, grey and white are not satisfied by four spools of
white — only the white slot is.

Closeness is redmean distance with a tolerance of 50, which treats genuinely
near shades as the same colour while keeping #000000 and #161616 (about 66
apart) distinct. Slot colours arrive as #RRGGBB and #RRGGBBAA — the alpha
channel is parsed off rather than making the colour unreadable.

The model page now lists every slot: its colour, which spool fills it, and the
nearest thing on the shelf when nothing does.

Two things this fixes in code I wrote an hour ago: renderDetailPrintable still
called a function the rewrite removed, so opening any model would have thrown;
and the README claimed colours weren't matched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 12:47:18 +10:00
..
app.js Match slots by colour, not just material 2026-09-17 12:47:18 +10:00
favicon.svg Add SVG favicon (hexagon mark) 2026-06-23 13:35:57 +10:00
index.html Show what's printable with the filament you have 2026-09-17 11:46:54 +10:00
styles.css Match slots by colour, not just material 2026-09-17 12:47:18 +10:00
viewer.js Fix model view for archives with long paths; preview inside archive-only models 2026-09-15 08:01:04 +10:00