onMatched / onNotMatched action.—
| time | rule | label | conf | delivered |
|---|
Binary yes/no is just two labels. Type yes,
add examples, type no, add examples. Three or more labels work the same way —
aim for at least 3 examples each, and keep the counts roughly balanced (the trainability
line warns you when they are not).
Two feature options for images. The fast hand-built descriptor (116-d, ~5 ms) needs no download and works well when your classes differ in colour, layout or texture. DINOv2 is a real pretrained backbone (384-d, ~2 s per image, one-time ~23 MB download, then cached by the browser) — the same idea as Teachable Machine's frozen MobileNet, and much better at generalising from only a handful of examples of real-world objects. Pick it from the features dropdown before training. Feature vectors are cached per extractor, so switching and retraining does not re-download anything.
Extractors per modality. Images use a 116-d descriptor (colour grid, hue histogram, oriented gradients, edge density) — the shapes demo's 26-d extractor assumes one bright blob on a dark field and measurably underperforms on photos. Sound uses 200-d log-mel statistics: mean, spread, and a 3-segment time profile, normalised so a 10× volume change moves the vector far less than a change of pitch does.
The raw capture is stored, not just the vector. That way the samples survive an extractor change and you can see what you actually recorded. Feature vectors are cached per extractor so retraining is fast.