Jev Town
AI town simulation forked from a16z ai-town where Jev picks each agent's next legal move and an LLM handles dialogue and memory.
Overview
Jev Town is a game engine in which characters are driven by AI rather than scripts, started from a16z-infra/ai-town. Each agent decides what to do next through two models working together. Jev makes the fast, structured decisions: whether to seek someone out, who to go to, where to wander and how long to wait, choosing only among options the engine offers, so illegal moves are impossible. An LLM (any OpenAI-compatible endpoint, Together or local Ollama) handles conversations, memory and agents' beliefs about the world.
A cast of five to fifty agents runs in a pixel-art room in a single browser tab, with a local proxy holding the model keys. Leaving the decider setting unset lets the LLM make every decision instead, which allows comparison. A spend backstop stops the proxy after 2,000 model calls per run. It is described as an MVP, with the Jev demo on a feature branch until merged, and the team plans a narrative game on top.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | What should this agent do next (seek someone, go to whom, wander where, wait how long)? | — |
How it works
- Engine enumerates legal next actions for an agent
- Jev chooses one; LLM handles any resulting dialogue and memory
- Simulation advances in the browser
- Proxy stops after 2,000 model calls per run
Strengths
- Illegal moves are impossible
- Cheap, fast decisions separated from expensive language work
- Switchable to all-LLM decisions for comparison
Caveats
- MVP; Jev demo on a feature branch
- Needs both LLM and Jev credentials
- Cost grows with cast size
Getting started
npm ci, create .env.local with LLM and JEV_API_KEY settings plus VITE_ACTION_DECIDER=jev, then `npm run play:demo` and open http://localhost:5173/ai-town/.At a glance
- Type
- App
- Status
- prototype
- Language
- TypeScript
- Runtime
- Browser + local proxy
- Has code
- yes
Use cases and integrations
How curated lists describe it
Jev based AI town simulation.
hellogumbo/awesome-jevAI town simulation where Jev picks each agent's next move from the engine's legal options and an LLM handles dialogue and memory. MVP; the Jev demo is on the `feat/jev-demo-solarium` branch until it merges.
MrJev/awesome-jev
Frequently asked questions
What does Jev decide?
Each agent's next action, such as who to seek out, where to wander and how long to wait.
What does the LLM do?
Conversations, memory and agents' beliefs about the world.
Where is the Jev demo?
On the feat/jev-demo-solarium branch until it merges.
Related projects
TypeScript framework for role-playing NPCs: Jev picks actions and communicative intents, the host composes dialogue.
ProjectprototypeTypeScriptReal-time bot battles where you write a fighter's strategy in plain English and a System One model pilots it several times a second.
ProjectbetaTypeScriptBot that plays Red Alert 2 web skirmishes, with code handling mechanics and a decision model making stance, threat and timing calls.
ServicebetaPythonMultiplayer 3D science-fantasy version of Houston's River Oaks District with Jev-powered NPC companion, chauffeur and smart drive.
ProjectbetaTypeScriptBrowser 3D planetary rover sandbox where a TypeSafe controller chooses the next action from complete candidates, versus a baseline.
ProjectbetaTypeScriptDoom runs as a spacecraft payload over real flight software; Jev pilots from the ground every half second while Claude reviews.
ProjectprototypePython