SynthChoice
Simulate minds, Predict decisions.
Created on 15th February 2026
•
SynthChoice
Simulate minds, Predict decisions.
The problem SynthChoice solves
Traditional conjoint analysis (the gold standard for market research) costs $15k-$50k and takes weeks. You need to recruit real people, design surveys, wait for responses. Most startups and small teams just skip it.
SynthChoice does the same thing in minutes using AI-powered synthetic personas.
What you can do:
- Test how different customer segments react to your product vs competitors. Simulate 500 tech-savvy millennials choosing between MacBook, ThinkPad, and Framework laptops.
- Understand price sensitivity. How does a budget-conscious parent react to $999 vs $1299?
- Figure out which features actually matter. Does battery life beat screen quality for remote workers?
- Compare across demographics. See how an INTJ in Bangalore decides differently from an ESFP in New York.
How it works:
- Define your experiment with alternatives (products/services) and their features
- Configure synthetic agents with personality types, locations, traits
- Watch agents make decisions in a visual SimWorld (think Gather Town meets market research)
- Get preference shares, segment breakdowns, and the reasoning behind each choice
The visual simulation makes abstract data tangible. You can literally watch an agent walk to the MacBook shop, pick it up, and leave while explaining "I chose this for the M3 chip and build quality."
Challenges we ran into
Building the Gather Town / Pokemon vibe
We wanted agents to feel alive, not just API responses. This meant building a 2D world with procedural buildings, animated characters, and product sprites that appear on shops.
The hard part: generating product sprites dynamically. Each alternative (like "MacBook Pro 14") needs a pixel-art sprite that shows up on its building.
We built a pipeline:
- Web search for a product image using an AI agent
- Fetch and convert to base64
- Send to Gemini 2.5 Flash with a prompt that generates a 2x2 sprite sheet
- Post-process to normalize colors and enforce grid alignment
This runs in parallel for all products. Buildings appear instantly, sprites pop in as they generate. Feels like loading into a game.
Rolling window concurrency
With 100+ agents, we couldn't spawn all at once (lag) or run sequentially (slow). Needed a rolling window where ~10 agents are active at any time.
First attempt used
Promise.race()
but would deadlock when the queue emptied at the wrong moment. Rewrote it to a semaphore pattern where each agent completion triggers the next spawn. Now agents flow smoothly through the world.Tracks Applied (1)
Hackathon Prizes
Technologies used
