Product designer · personal experiment

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.

Weekend-scaleLocal-firstDeliberately unreleasedNot in version control
Overview02

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 loop03

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.

  1. Capture

    A drawer, a shelf, a cupboard. The image is downscaled on the device before anything is sent.

  2. Inventory

    The model returns item names, aliases, per-item location hints and a suggested name for the spot.

  3. Review

    You edit it before it is saved. This step is the design.

  4. 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.

The privacy boundary04

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.
Stated limits05

It is a weekend-scale experiment, and that is the claim.

Where it stands
  • 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
Still open
  • 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

Five panels, read end to end.

B-SIDEOff the record