jev-tetris
Streamlit Tetris demo where Jev picks one collision-checked placement ID and Python verifies cells before locking.
Overview
Jev plays Tetris is a small Streamlit arcade game that demonstrates a general pattern: give the model a finite set of valid outcomes, ask for one typed option, and let ordinary code verify and execute it. The engine enumerates every legal final placement for the current piece, each with rotation, leftmost column, landing row, exact occupied cells, lines cleared, holes, height, bumpiness and a one-piece lookahead score. Jev returns a placement ID such as p11, and the engine checks that the ID is still legal and its cells match before locking the piece.
Features include SRS rotations with kicks, a 7-bag generator, a five-piece queue, ghost preview, an Ask Jev for Placement single-step mode for inspecting one decision with confidence and alternatives, a continuous play mode, and a request/response trace with JSON export. A deterministic local planner allows testing without an API key, and the key is read server-side only. A narrated explainer video is included.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which legal placement ID should this piece take? | — |
How it works
- Enumerate legal placements with board facts and lookahead
- Jev Choice returns a placement ID
- Engine verifies rotation, column and exact cells
- Animate and lock; repeat or pause for inspection
Strengths
- Every decision is verified before execution
- Inspectable trace and JSON export per decision
- Keyless local planner for testing
Caveats
- Demo only; no performance comparison reported
Getting started
uv sync && uv run streamlit run app.py (export TYPESAFE_API_KEY for live Jev).At a glance
- Type
- App
- Status
- prototype
- Language
- Python
- Runtime
- Streamlit
- Has code
- yes
Use cases and integrations
How curated lists describe it
A visual TypeSafe demo where Jev chooses verified Tetris placements.
hellogumbo/awesome-jev
Frequently asked questions
Does Jev output coordinates or key presses?
No. It picks one ID from engine-enumerated legal placements.
How is a bad answer handled?
The engine checks the chosen placement is still legal and its cells match before locking.
Can I run it without a key?
Yes, a deterministic local planner is used when no key is set.
Related projects
Public Jev lab centred on a chess match broadcast where Jev picks from legal moves, plus smaller judgment booths and a Fast Flag catalogue.
ProjectprototypeJavaScript, Python25-second Japanese IT-buzzword game that shows Jev's speed and cost: every typed term is classified live, with no LLM-generated text.
ProjectprototypePython, JavaScriptVisual workbench (in Portuguese) for wiring Jev decision funnels as node graphs and watching them play a game in real time.
ProjectprototypePythonTic-tac-toe teaching project comparing Jev Choice, Score and Noul designs across three levels of state detail.
ProjectresearchJavaScriptJapanese quiz demo where Jev guesses which of AWS, Azure or Google Cloud a debranded service name belongs to, showing its probabilities.
DemoprototypeTypeScriptWeb lab where Jev plays 2048, showing each move's probability distribution, confidence, latency and token cost.
Demoprototype