Here's how it works: 1. Enter your first word to reveal the AI's word of the day. 2. Don't think too hard about it. It's just a starting point. 3. Both of you think of a word that connects the two. 4. To win, you need to say the same word. 5. You have 8 guesses to converge. 6. Need a hint? The AI will drop a riddle in your final two guesses.
HOW DOES IT WORK? After the user_word + ai_word are submitted, I trigger two separate LLM calls which return structured data that I use to advance the game: 1. `evaluate_match`: this reasons about the match to decide if it should be counted as a convergence, and returns the reasoning, a bool, and a similarity score (this is what powers the rings that get further/closer to eachother in the game background and the green squares in the share results) 2. `guess_word`: this takes the two words, reasons about what a good next word might be, and returns the reasoning and new word.
I store the new word without revealing it to the user, so that after the user has time to decide and input their word, the AI has already had its next word selected since the last round ended.
I used BAML with OpenRouter to quickly iterate on prompts and easily switch between LLMs to compare outputs. I settled on gemini-2.0-flash as the right combination of quality, speed, and cost.
nosmokewhereiam•8h ago
Otherwise super fun and unique! Well done, thank you for sharing this.
cwackerfuss•8h ago