AI Déjà Vu MVP

Train an image classifier in your browser. It's stored in IndexedDB and survives reloads. Every prediction fires a switchable onMatched / onNotMatched action — console, webhook, both or off.
No server, no upload, no API key. Inference and training both run locally.
Train on your own examples
Camera or image files for photos, mic or audio files for sounds, your own labels, live inference with the same webhook actions.
Open the Studio →

1 · Train

no model yet — train one above.

2 · Stored models IndexedDB

3 · Match rule & actions

Cross-origin endpoints need CORS. Failures are logged, never thrown.

4 · Run inference

draw a shape
or use a generated sample
no prediction yet

Payload sent

Event log persisted

timeruleclassconfdelivered

Activity

booting…

How it works

A frozen feature extractor turns each image into a vector; a small softmax head (81 parameters for v2) is the only thing trained. That's the Teachable Machine architecture, and it's why the model is a few KB and fits in a database row.

v1 is included deliberately as a broken control. It uses absolute gradient orientation, so rotating a square moves its embedding further than changing the shape does — within-class variation exceeds between-class separation and no amount of training can fix it. v2 measures orientation relative to the shape's centroid and scores ~52 points higher with 8.6× fewer dimensions.

Integrity checks run on every training. The important one is that shuffled labels must collapse to chance — with more features than samples, a head that memorised noise would still score high on permuted labels. If that check fails, the accuracy number is not trustworthy.