Skip to content

jev-flappy-bird

Flappy Arena races Jev against GPT-6 Luna on the same seeded Flappy Bird course, each choosing flap or wait live.

Projectprototype

Overview

Flappy Arena runs two Flappy Bird games on the same randomly seeded course and physics, one controlled by Jev and one by GPT-6 Luna. Both birds launch together after each model's first decision, then live with their own choices. The screen shows each bird's score, latest action, confidence and response time.

Each model sees its own bird's projected position, velocity and next pipe, with the projection accounting for expected response time, and chooses flap or wait. Games run at 30 percent speed and request decisions every 50 ms; multiple requests can be in flight, and a flap supersedes pending answers based on the old path. Late or failed answers leave the bird falling under gravity, and the browser shows which answers were applied, superseded or skipped. Decisions and diagnostics are logged locally. A list summary notes it also compares runs with and without physics context.

What the decision model decides

TypeQuestionAnswers
ChoiceShould the bird flap or wait?flap · wait

How it works

  1. Seed a shared course for both models
  2. Each model gets its bird's projected state every 50 ms
  3. Apply answers, superseding stale ones after a flap
  4. Log decisions and timing for inspection

Strengths

  • Head-to-head comparison on identical courses
  • Latency-aware state projection
  • Inspectable logs

Caveats

  • Needs both TypeSafe and OpenAI keys
  • Game demo only

Getting started

`npm install`, put TYPESAFE_API_KEY and OPENAI_API_KEY in .env, `npm start`, open http://localhost:4173.

At a glance

Type
Project
Status
prototype
Language
JavaScript
Runtime
Node 22 server with browser game
Has code
yes
Has tests
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

What is compared?

Jev and GPT-6 Luna each controlling a bird on the same course.

How is latency handled?

State is projected forward by expected response time, and stale answers are superseded.

Where are logs?

Local JSONL files and /api/jev/logs and /api/openai/logs.

Related projects

  • Fifteen live arcade games where Jev and LLMs play each other, led by WikiRace in which Jev picks only real links.

    ProjectbetaTypeScript
  • One-page web app where Jev plays chess against OpenRouter LLMs, Stockfish or you, showing the moves it weighed and their probabilities.

    AppbetaJavaScript
  • Pac-Man where Jev or other System One models choose each move at junctions, with live odds, fallbacks and a leaderboard.

    ProjectbetaTypeScript
  • Browser chess lab where Jev, LLMs and people play, each Jev turn being one Choice over the legal moves, with Stockfish analysis.

    ProjectbetaPython
  • NiceGUI desktop chess app for evaluating Jev's move choices against Stockfish, random players or itself, with PGN export.

    ProjectprototypePython
  • Browser 2D driving sim where Jev answers lane, speed, hazard and pedestrian-yield questions every 200 ms, with an LLM comparison mode.

    ProjectprototypeJavaScript