jev-flappy-bird
Live demo where Jev plays Flappy Bird alone, answering flap or wait about twenty times a second with several requests in flight.
Overview
Jev Plays Flappy Bird is a live demo in which Jev is the only thing controlling the bird. About twenty times a second, the game asks one Choice question, FLAP or WAIT, with each option described. If Jev stops answering, the bird falls.
With each question the game sends a small snapshot: bird position and speed, distance to the next pipe and its gap, room above and below, and the same facts in plain words such as 'inside the gap, lower half' and 'falling'. The snapshot describes the scene without telling Jev what to do. The game never waits for Jev; it asks the next question without waiting for the last answer, keeping about six in flight. Answers are used exactly as returned, with no thresholds, backup rules or retries, because a retried answer would arrive too late. The key stays on the local server, and a model version can be pinned for repeatable runs.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Should the bird flap or wait? | FLAP · WAIT |
How it works
- observe() builds a snapshot of the scene
- Local server sends the Choice to Jev
- Several requests stay in flight without blocking the game
- Apply each answer as returned
Strengths
- Shows Jev's latency in a real-time loop
- No hidden rules or fallbacks
- Key kept server-side
Caveats
- Toy game
- Performance depends on network latency
Getting started
`npm install`, copy .env.example to .env with TYPESAFE_API_KEY, `npm run dev`, then open http://localhost:5173 and press Space.At a glance
- Type
- App
- Status
- prototype
- Language
- TypeScript
- Runtime
- Vite web app with local Node server
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
A live demo of TypeSafe's Jev model playing Flappy Bird, one flap-or-wait decision at a time.
logicrw/awesome-jev-projects
Frequently asked questions
What does Jev decide?
Whether the bird flaps or waits, about twenty times a second.
Is there a fallback controller?
No, Jev's answer is used as is and nothing else controls the bird.
How does it handle latency?
It keeps about six questions in flight and never waits for an answer.
Related projects
Source for browser chess and Chess960 where code computes each legal move's facts and Jev picks one per turn as a typed Choice.
ProjectproductionTypeScriptBrowser 1v1 sniper arena where Jev reads match state about 9 times a second and chooses movement, aim, ADS, firing and jumping.
ServicebetaTypeScriptInstrumented 2048 web lab where every move is a Jev Choice over four directions, with probabilities, latency and cost shown live.
ProjectbetaTypeScriptFifteen live arcade games where Jev and LLMs play each other, led by WikiRace in which Jev picks only real links.
ProjectbetaTypeScriptReal-time bot battles where you write a fighter's strategy in plain English and a System One model pilots it several times a second.
ProjectbetaTypeScriptBrowser extension that lets Jev, local Laya or an OpenAI-compatible model take over a running ra2web (WannaFire) RTS match.
ProjectbetaTypeScript