Pin
WEARABLE MEMORY BOOK
A camera you wear that sees what you see and never forgets. The device is deliberately dumb — it captures keyframes and streams them — and every piece of intelligence runs on a Mac in the same room.
Pin was my first attempt at a problem I keep coming back to: a machine that remembers your day without handing your day to anybody else.
The device captures UXGA JPEG keyframes from an OV2640 and pushes them over a WebSocket with a 16-byte binary header and length-prefixed frames. On the Mac, an ingest worker segments the stream into events, tags scenes with Qwen2.5VL, resolves faces with InsightFace ArcFace, and writes both into a knowledge graph with a vector index beside it.
Everything about it is phased on purpose — ingest and live view first, then consolidation, then retention. It taught me what OpenRecall needed to be.
STACK, BY LAYER
- 01 PRODUCT Live view · recall surface
- 02 SERVICE FastAPI · async workers · WebSocket ingest
- 03 DATA SQLite + sqlite-vec · FalkorDB / Graphiti · media on disk
- 04 MODELS Qwen2.5VL · Qwen3 35B · InsightFace ArcFace via Ollama
- 05 PROTOCOL 16-byte binary header · length-prefixed frames · JSON control
- 06 FIRMWARE ESP-IDF · FreeRTOS event bus · component lifecycle
- 07 SILICON XIAO ESP32-S3 Sense · OV2640 · PSRAM · SD card