Head of Engineering @albomx · Frontend & Mobile dev (React, Vue, SwiftUI, Kotlin) · Building teams, mentoring devs, exploring agentic AI. From Argentina 🇦🇷
Known limits: no liveness detection yet, results are on LFW rather than real-world footage of older adults, and using it with Ray-Ban Meta needs Meta’s approval. The app speaks Spanish; people and voices in the video are AI-generated.
Code: https://t.co/cuGSHyX4LU
A few people asked how Lazo works and what it does with faces, so here’s a 2-minute technical walkthrough.
Lazo whispers to a person with dementia who is in front of them, from smart glasses or any camera. Thread on the design choices below.
Someone here caught a real gap: with mask + sunglasses, Python abstains (0.336) but the browser names Marta (0.386). The browser skips CLAHE and the bilateral filter. Next: port that preprocessing, calibrate a browser-specific threshold and add a decision-parity test.
When it isn’t sure, it doesn’t guess: scores between 0.30 and 0.38 make it say it doesn’t recognize the person. On LFW with 50 people in the circle it named the wrong person once in 904 unknown faces.
Everything runs on the device. In the browser it’s ONNX Runtime + WebAssembly at about 54 ms per frame (p95), and the end-to-end test checks that the app makes no requests to other origins. Strangers are never named or stored.
Consent comes first: people enroll in person and accept on their own phone (the web demo simulates that QR handoff). The five guided photos are deleted; only an encrypted template is kept, with a non-extractable key. Anyone can withdraw and it’s deleted on the spot.
Every frame goes through eight stages: light correction, face detection with five landmarks (SCRFD), alignment, a 512-number MobileFaceNet/ArcFace embedding, and a cosine search over the people in the circle. It only speaks when the same person wins 3 of the last 4 frames.
In many families, someone with dementia still knows every face but can't find the name.
Lazo is an open-source app for smart glasses (or any camera) that quietly tells them who's in front of them. It only recognizes people who opted in, runs entirely on the device, and stays silent when it isn't sure.
https://t.co/44Ps4BAmCT
The people and voices in the video are AI-generated.
@AiKreyol the ≥0.995 cosine parity was measured on identical crops, so it hid that gap. Then calibrate the web threshold on its own pipeline, over the same LFW validation split, and add a decision-parity test on borderline cases like that one.
@heyblake Made Quay — a drop-in replacement for Claude's Chrome extension that runs on local models, so I stop burning my plan tokens on light tasks.
https://t.co/I8coACr2yH
Open source from day one.
Tabs stay scoped to their group, writing actions ask for
approval, keys never leave your machine.
If you want to try it or help build it:
https://t.co/jRPpcjHOhv
I love the Claude Chrome extension, it's my daily companion. But lately I need to save my tokens for heavier tasks, so I built my own alternative.
It's called Quay. Agentic, runs on local models, open source.
https://t.co/I8coACr2yH
Persistent memory per session, across browser restarts.
The agent saves what it learns — facts, links, decisions — and uses it across turns. Scoped to the Chrome tab group so nothing leaks between sessions.
The whole point: stop burning plan tokens on light tasks. With Ollama running locally, every run is free.
With OpenAI, Anthropic, Gemini or OpenRouter, you see spend and tokens per model in real time.