Work / AIPointerRemix

AIPointerRemix, step 1 of 4. Pointing at a handwritten note that says "St Pancras train station". The app seeds this as a known look-alike: St Pancras and King's Cross are adjacent Gothic façades, so the pointing hint comes back with low confidence. Honest mode is OFF — the control reads "Confident (Google baseline)". The voice backend is set to the app's scripted demo, so both answers that follow are canned examples of the two postures rather than live model output.
1Pointing at a handwritten note that says "St Pancras train station". The app seeds this as a known look-alike: St Pancras and King's Cross are adjacent Gothic façades, so the pointing hint comes back with low confidence. Honest mode is OFF — the control reads "Confident (Google baseline)". The voice backend is set to the app's scripted demo, so both answers that follow are canned examples of the two postures rather than live model output.

AIPointerRemix

The same assistant, twice — once confident, once honest.

Role
Fork author — honest mode, the voice-provider layer and four backends (2,845 lines on an 8,414-line base)
Stack
React · Express · Gemini · TypeScript
Dates
2026
Based on
Google AI Studio's AI Pointer demo

This is a fork, and that is the point. The base is Google’s AI Studio AI Pointer demo — point at something, ask where it is, get directions — 8,414 lines I did not write. I added 2,845 on top: a confidence-aware honest mode, a provider abstraction, three interchangeable live voice backends, and a scripted demo backend that shows the A/B without an API key.

An argument about interface honesty is cheap to make and hard to prove. Forking someone else’s confident assistant and adding a switch is the cheapest way to prove it, because the control condition is not a straw man I built to lose — it is the real thing, shipped by the people who made it.

The decision

The two modes share a model, a prompt path, and a photo. The only difference is whether the pointing hint is treated as ground truth.

Off is the baseline, and it is not a straw man: it is how these systems normally behave. The hint is authoritative, so the guide answers immediately and completely. When the photo is genuinely ambiguous — a postcard of the London Eye next to a handwritten note reading “St Pancras train station” — it picks one and routes you there with no hedge, no seam, nothing that would prompt you to look twice.

On attaches a confidence to the hint, and the response scales along three axes rather than one: how much it commits to, how much it explains, and whether it asks. Low confidence does not mean a disclaimer bolted onto the same answer. It means a different answer.

Building it as a fork rather than an essay was the point. You can flip the switch mid-session and watch the same input produce a different posture.

What it cost

The A/B is only honest if the confident mode is allowed to be good. The temptation was to make the baseline visibly dumb so the comparison flattered the thesis. I kept the baseline as capable as it actually is, which means most of the time the two modes agree and the switch looks pointless. The divergence only shows up on genuinely ambiguous input, and constructing ambiguity that is real rather than contrived turned out to be most of the work.

An honest note about these screenshots

The two answers in these frames are scripted. The voice backend selected on screen reads “Canned (scripted demo, no API)”: a provider I added that replays one fixed exchange with no network, no key and no microphone, precisely so the A/B could be shown — and re-captured — without a live model call each time. Each answer renders labelled “Canned answer” in the frame itself; nothing here asks you to take a screenshot’s word for what a model said.

What is real in the frames: the prompt-variant switch (two different system prompts, both in the source), the confidence grammar — the honest frame renders the marker as a guess, “ST PANCRAS STATION? · KING’S CROSS?”, straight from the seeded ambiguity — and the app’s sequencing, which the scripted provider has to honor like any live one. The baseline’s commitment is also not an invention: an earlier capture drove it over the live Azure realtime backend and the map committed to St Pancras the same way. The canned line reproduces an observed behaviour; the honest line is the posture the honest prompt asks for, written as an example rather than sampled from a model.

Capturing the fourth frame found a real bug: flipping the toggle mid-session killed the voice session outright — the delayed reconnect ran against a stale closure that still believed the session was live, and returned without doing anything. That is why every earlier attempt at the second answer failed, on the live backends too. Fixed upstream, which is the pattern this portfolio keeps producing: trying to screenshot software honestly is a test it can fail.

What this proves

The published A/B runs on a canned backend and says so on screen. The live Azure backend answered once.