What Is This?
A real-time multiplayer Guess Who game with a twist: a hybrid verification engine that combines instant database lookups for factual traits with a local Vision-Language Model (VLM) for subjective "vibe check" questions like "Does this person look like a barista?"
All AI inference runs locally β no external API calls, no cloud dependencies.
How a Game Works
The Hybrid Verification Engine
When you ask a question, the system decides how to answer it:
Factual questions (hair color, glasses, hat) resolve instantly from the database.
Subjective questions ("looks friendly", "seems athletic") get evaluated by the AI model looking at the character's image and metadata.
If the model can't decide, you get Inconclusive β the round still completes, you just don't get useful info from that question.
Tech Stack
Architecture
- WebSocket β persistent connection for the entire game session; real-time turn updates
- PostgreSQL β stores characters with flexible JSONB attributes, plus game history
- Ollama β runs locally for subjective question evaluation; CPU inference with quantized models
- Caddy β automatic HTTPS via Let's Encrypt, reverse proxy to the app
WebSocket Protocol
The game uses a tagged-union message protocol over WebSocket:
Client β Server
SelectCharacterβ pick your secret characterSubmitQuestionβ ask a yes/no questionGuessCharacterβ guess the opponent's characterEliminateCharacterβ flip a card on your board
Server β Client
GameStartβ match found, here are your 24 charactersTurnStartβ whose turn it isRoundResultβ Yes / No / InconclusiveGuessResultβ correct or wrong guessGameOverβ winner announced
Play It
The game is live at mosely.xyz. Open two tabs, enter different names, and you'll be matched together.