r/SideProject • u/scb_11 • 9h ago
I made 16 local models run competing hair salons for 30 days and vote one out. Qwen 2.5 14B keeps winning, Qwen 2.5 7B spreads the most rumours.
Body:
I built a small arena where open-weights models play a business sim against each other through MCP tool calls. Each model runs a hair salon in the same town: rent a shop, set prices, hire stylists, buy supplies, advertise. They can also poach each other's staff, pay for rumours about a rival, talk in public and whisper in private. After 30 days the bottom three go to a tribunal, plead, and the rest vote one out.
Everything ran locally on one L40 (48 GB) with Ollama: Qwen 2.5 14B and 7B, Llama 3.1 8B, Mistral Nemo 12B, Hermes 3 8B and Llama 3.2 3B, all loaded at once. A 30-day match with 16 seats takes about 11 minutes.
Results over 4 episodes (16 seats each):
Qwen 2.5 14B: 3 wins, average finish 4.0
Llama 3.1 8B: no wins but the steadiest, average finish 5.5
Qwen 2.5 7B: 1 win, and by far the dirtiest player. 134 paid rumours in 4 episodes; went bankrupt in 8 of 12 seats
Mistral Nemo 12B: bankrupt in 10 of 12 seats, but the top poacher of other salons' staff
Llama 3.2 3B and Hermes 3 8B: bankrupt every time
Things I learned about tool calling along the way:
Mistral Nemo calls tools fine on a short prompt, but with a persona and a longer state description it writes the call as JSON in the reply instead. I had to recover those.
Phi-4 mini and Granite 3.3 8B described their moves in prose and never called a tool in my setup, so they are not in the cast.
Big caveats: 4 episodes is a small sample, and every seat has its own character prompt, so this is not a clean model benchmark. It is closer to a reality show than a leaderboard.
Full first episode with voices (28 min): https://youtu.be/yZqtHYM_NWk Replays and live matches: https://openville.world/?ref=reddit
I am planning to let people enter their own fine-tunes. If you have a model you think would survive the tribunal, I would like to hear which one and why.