Where's my garam masala?
You teach it your drawers, shelves and cupboards by photographing them. A vision model inventories what is inside. Later you ask — typed or spoken — and it answers with the exact spot and the photograph.
Small, and written up small.
- My role
- Executed — the whole thing
- Date
- Unknown — the project is not in version control
- Built with
- TypeScript · Vite · the browser's own database
- State
- Runs locally, including on a phone. Deliberately unreleased
The model proposes. You confirm.
A vision model listing the contents of a drawer will be mostly right and occasionally confidently wrong. An index built from unreviewed output degrades quietly until it is useless, and you only find out when you are looking for something.
Capture
A drawer, a shelf, a cupboard. The image is downscaled on the device before anything is sent.
Inventory
The model returns item names, aliases, per-item location hints and a suggested name for the spot.
Review
You edit it before it is saved. This step is the design.
Ask
A local fuzzy search answers first — typo-tolerant, alias-aware, instant and free. Only when nothing matches does the question reach the model.
The ordering is the whole cost model: the common case never leaves the device and never costs anything.
One frame, and nothing else.
- Before
- The application collects photographs of the inside of somebody's home.
- What forced it
- “It uses AI” usually means everything goes somewhere and stays there.
- The decision
- Every photograph and the whole item index live in the browser's local database. The only thing uploaded is the single frame being analysed, at the moment it is analysed, to whichever vision provider the user configures with their own key.
- What it changed
- There is no account, no server of mine, and nowhere for the data to accumulate. The provider is a choice rather than a dependency, which is why swapping one is a settings change.
It is a weekend-scale experiment, and that is the claim.
- The teach-and-ask loop works, including on a phone over the local network
- A separate phone configuration serves over HTTPS, because a live camera preview needs a secure context — over plain HTTP the file-picker path still opens the native camera, so it degrades rather than breaks
- It installs to a phone's home screen from the browser, which is as far as distribution goes
- No git repository, so no commit history and no date I can stand behind
- The central question — is the model accurate enough — was never measured. No inventory was scored and no provider compared
- A hands-free cooking mode, a native wrapper and local embedding search are ideas in a README, not work done
- Nobody but its author has used it