jev-town
3D town game where 50 citizens each choose whether to investigate, join, flee, warn or ignore your broadcast in one batched Jev request.
Overview
Jev Town is a browser game in which you play the Town Crier of a small 3D town. You write one broadcast per round and all 50 citizens decide in parallel whether to investigate, join, flee, warn or ignore it. Each citizen has a distinct role and personality, so the same announcement can split the town in surprising ways. Rounds come with directives and scoring goals, and you balance trust and unrest while building a streak.
The game sends one batched Jev Choice request per round. The hosted demo at jev-town.vercel.app runs on a built-in deterministic simulation so sharing it costs nothing; a deployment ignores its own key unless explicitly allowed, so anonymous visitors cannot spend the owner's quota. To see real decisions you can run it locally, where only the Express backend reads the key, or add your own key in the hosted app, where it is kept in sessionStorage for the tab and forwarded once to Jev without being stored or logged, which a test asserts. If Jev is unavailable the game falls back to the labelled simulation.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | How does this citizen react to the broadcast? | investigate · join · flee · warn · ignore |
How it works
- Player writes a broadcast
- One batched Choice request covers all 50 citizens
- Citizens walk the 3D town according to their decisions
- Round is scored on trust, unrest and directive goals
Strengths
- 50 decisions in one request, shown visually
- Careful bring-your-own-key handling with a test
- Playable fallback without a key
Caveats
- Hosted demo uses a simulation unless you add a key
- Game rather than evaluation
Getting started
npm install && TYPESAFE_API_KEY=... npm run dev, then open http://localhost:5173.At a glance
- Type
- Project
- Status
- prototype
- Language
- TypeScript
- Runtime
- Browser + Express
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
A 3D town where 50 AI citizens each decide how to react to your broadcast, in parallel, in under a second - powered by TypeSafe's Jev decision model.
hellogumbo/awesome-jev
Frequently asked questions
What does each citizen decide?
Whether to investigate, join, flee, warn or ignore your broadcast.
Does the hosted demo use real Jev?
Only if you add your own key; otherwise it runs a labelled deterministic simulation.
Is my key stored?
No. It stays in sessionStorage for the tab and is forwarded once without being logged or stored.
Related projects
Real-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.
ProjectprototypePythonMinecraft agent where Hermes plans, Jev picks one bounded action at a time and a Mineflayer harness validates and executes.
ProjectprototypeJavaScript